根据大小同步文件

根据大小同步文件

我正在尝试 rsync 扩展名为 *.scala 的文件,并且只同步这两个目录之间的文件,没有其他文件。如果大小不同,则应该同步它们。我正在执行此命令,但没有看到任何 scala 文件被同步,尽管我知道它们的大小不同。

rsync -rnvh --ignore-times --size-only --include '*/' --include '*.scala' --exclude '*' /home/salilsurendran/code/servlet-app /home/salilsurendran/code/sbt-runs/servlet-app/ 

使用 -n 选项,我正在执行试运行,输出打印出一堆目录,但没有任何文件。请帮忙

答案1

您已经非常接近了;因为您需要移动以 结尾的任何文件.scala,而不仅仅是任何文字.scala,所以您需要*.scala作为--include的 glob 模式。

做:

rsync -rnvh --ignore-times --size-only --include '*/' --include '*.scala' \
    --exclude '*' /source/ /dest/

答案2

rsync -nrvh --size-only --include="*/" --include=" * .scala" --exclude="*" /home/salilsurendran/code/servlet-app/ /home/salilsurendran/code/sbt-runs/servlet-app/ 已工作。

问题出在源目录末尾的尾随“/”。添加后,它就可以按预期工作了。谢谢。

相关内容