如何执行相当于yes 的mv | cp -rf 在目录上?

如何执行相当于yes 的mv | cp -rf 在目录上?

以下面的目录树为例,将内容移动directory/folderA到 的最佳方法是什么directory

如果目标中存在同名文件,如何覆盖文件,例如:directory/folderA/2017/06/info.logdirectory/2017/06/info.log

directory
|-- folderA
|   |-- 2017
|   |   |-- 06
|   |
|   |-- 2016
|   |   |-- 12
|   |   |-- 11
|   |   |-- 10
|
|-- 2017
|   |-- 04
|   |-- 05
|   |-- 06
|
|-- 2016
|   |

答案1

就像是rsync -a --remove-source-files src/ dest?一个简单的测试表明,任何存在于dest但不存在的内容src都将被保留。 (注意 后面的斜杠src。这里是必需的。)

进一步保存,您可以添加--ignore-existing这样的文件,dest即使它们也存在于src.但随后您可能会留下文件,src因为--remove-source-files仅适用于成功传输到目的地的文件。

一般来说,rsync是一个非常强大的工具,有很多选项。 (而且,按比例来说,有一点学习曲线......尽管这里的情况看起来非常简单。)如果有人在rsync.

答案2

tar -cv /parent_folder/subfolder/* -f - I tar -xv --overwrite /parent_folder/

使用 tar 打包整个目录并通过管道传输到父文件夹中的 unar 可能是最好的选择(如果要通过 bzip 过滤 tar 文件,请在管道之前和之后添加 -j )

—overwrite :用从 tar 文件中提取的文件覆盖现有文件

相关内容