如何在osx上模拟cp和mv --parent

Max*_*sen 5 macos mv cp

Osx mv和cp没有--parents选项,那么如何模拟它呢?

即sv x/y/a.txt s/x/y/a.txt当s为空时给出一个没有找到目录的错误,除非先做一个mkdir,这在尝试这样做时相当麻烦,做了数千个文件.

Max*_*sen 5

解决方案(适用于所有具有 rsync 的平台)是:

使用 find 或其他一些工具来创建一个包含您要移动/复制的文件的文件,即

find *.mp3 > files.txt
Run Code Online (Sandbox Code Playgroud)

然后使用 rsync files-from 来指定它,并通过使用 --remove-source-files 它的行为就像一个 mv -p 而没有它像 cp -p 一样工作:

rsync --files-from=files.txt --remove-source-files src dest 
Run Code Online (Sandbox Code Playgroud)

比原生 mv/cp 慢,但它的可恢复和 rsync 有更多的选项,否则也可以帮助清理你的文件。