使用find与rsync失败的方式是我无法理解的

时间:2014-05-19 11:09:05

标签: bash find rsync

我正在尝试同步两个目录,省略某些文件。

find . -type f  -print0  |rsync -vupt -0 --files-from=- . /tmp/test

这会复制每个文件,但按预期工作

当我尝试限制复制的文件时出现问题。所以,如果我想要复制除#34; .part"之外的所有文件。 :

find . -type f -\! -iname "*.part" -print0  |rsync -vupt -0 --files-from=- . /tmp/test

但这根本无法复制任何东西。

如果我删除了管道,我可以看到find正在输出一个看起来就像第一个命令的输出类型的流,但是减去了我不想复制的文件名。

(我尝试了-not和-name替代品,但没有运气)

我做错了什么?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

find否定不是命令,而是运算符。您可以使用! -iname "*.part"来否定该单个表达式。