我有两个看起来像这样的目录:
/folder1/sub1/file1.txt
/folder1/sub1/file2.txt
/folder1/sub2/file1.txt
/folder1/sub2/file2.txt
/folder2/sub1/file3.txt
/folder2/sub1/file4.txt
/folder2/sub2/file3.txt
/folder2/sub2/file4.txt
Run Code Online (Sandbox Code Playgroud)
我想将所有文件复制folder2
到其中folder1
而不删除任何现有文件夹,因此我最终得到以下内容:
/folder1/sub1/file1.txt
/folder1/sub1/file2.txt
/folder1/sub1/file3.txt
/folder1/sub1/file4.txt
/folder1/sub2/file1.txt
/folder1/sub2/file2.txt
/folder1/sub2/file3.txt
/folder1/sub2/file4.txt
Run Code Online (Sandbox Code Playgroud)
如何通过终端完成此操作?
rsync
是这项工作的完美工具:
rsync -av folder2/ folder1
Run Code Online (Sandbox Code Playgroud)
该-v
选项是可选的,但它会在处理文件时列出文件。后面的斜杠folder2
是必需的,否则你会得到folder1/folder2/file1.txt
而不是folder1/file1.txt
.
如果您不确定该命令是否满足您的要求,请添加--dry-run
选项以显示实际发生的情况。