我正在尝试 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/ 已工作。
问题出在源目录末尾的尾随“/”。添加后,它就可以按预期工作了。谢谢。