我有一个文件夹层次结构,想要将一个文件夹的文件内容同步到另一个文件夹。
因此,只需将 dirA rsync 到 dirB 即可
但是,如果没有递归元素,它就不会包含文件夹中的文件。
dave:/tmp# mkdir dirA
dave:/tmp# mkdir dirB
dave:/tmp# touch dirA/tmp.txt
dave:/tmp# rsync --stats dirA/ dirB/
skipping directory .
Number of files: 0
Number of files transferred: 0
我可以
dave:/tmp# rsync --stats dirA/* dirB/
Number of files: 1
Number of files transferred: 1
但是如果有数万个文件,参数列表可能会变得太长。
同步两个文件夹的内容(没有子文件夹)似乎是一个相当简单的操作,但我显然遗漏了一些东西?
答案1
这有帮助吗?手册页的 -d 和 -m 选项:
-d, --dirs transfer directories without recursing
-m, --prune-empty-dirs prune empty directory chains from file-list
然后运行...
mkdir dirA
mkdir dirB
mkdir dirA/dirAA
touch dirA/fileA
touch dirA/dirAA/fileAA
rsync --stats -dm dirA/ dirB/
输出:
Number of files: 3 (reg: 1, dir: 2)
Number of created files: 1 (reg: 1)
Number of deleted files: 0
Number of regular files transferred: 1
Total file size: 0 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 0
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 123
Total bytes received: 31
结果:
ls dirB
fileA