【发布时间】:2011-03-29 07:24:46
【问题描述】:
Osx mv 和 cp 没有 --parents 选项,那么如何模拟它呢?
即mv x/y/a.txt s/x/y/a.txt 当 s 为空时会给出未找到目录错误,除非先执行 mkdir,这在尝试执行数千个文件时相当麻烦。
【问题讨论】:
-
你试过
cp -R吗?还是你不想要整个结构?
Osx mv 和 cp 没有 --parents 选项,那么如何模拟它呢?
即mv x/y/a.txt s/x/y/a.txt 当 s 为空时会给出未找到目录错误,除非先执行 mkdir,这在尝试执行数千个文件时相当麻烦。
【问题讨论】:
cp -R吗?还是你不想要整个结构?
解决方案(适用于所有具有 rsync 的平台)是:
使用 find 或其他工具创建包含您要移动/复制的文件的文件,即
find *.mp3 > files.txt
然后使用 rsync files-from 来指定它,并使用 --remove-source-files 它的行为就像 mv -p 并且没有它像 cp -p 一样工作:
rsync --files-from=files.txt --remove-source-files src dest
比原生 mv/cp 慢,但它的可恢复和 rsync 提供了更多选项,否则也有助于清理文件。
【讨论】:
/Volumes/Music.../iTunes/...(外部磁盘)移动到~/Music/iTunes/...(内部磁盘)...我最终得到了/Volumes/Music.../iTunes/... inside 的额外子树i> 输出目录,但这很容易通过移动文件来解决。