使用rsync复制除具有特定扩展名的某些文件名以外的所有文件


28

我有两个相同大小的闪存卡,并且我想根据以下规则将其中一个的内容复制到另一个中:

  1. 我希望所有目录和子目录都到位
  2. 我想排除.FOO,.BAR和.ZIM类型的文件(复制所有其他文件)
  3. 奖励:如果在复制文件名时输出文件名,这很酷,因为它将复制约8 GB的信息

可以通过某种方式“查找”完成此操作吗?

Answers:


41

rsync与它的开关一起使用,这将明显容易得多--exclude

rsync -av --exclude='*.FOO' --exclude='*.BAR' --exclude='*.ZIM' /source /dest

-v开关将提供关于哪些文件正在同步详细输出。


此处的后续操作很少:复制完成并且/ src / *现在位于/ dest / src / *中。如何使用rsync在/ dest / *中获取/ src / *?
Macek 2010年

试试/source/ /dest
John T

这行不通。我仍然看到* .FOO文件被复制。
杰克

它指定了应如何指定的路径--exclude。如果您有问题,请查看此答案
totymedli '18

0

如果要排除的扩展名很多,则可以制作一个文件并写下所有要排除的扩展名或文件,并仅使用一个排除选项使其简单。

rsync -ravz --exclude ='。/ abc,txt'/ source / dest

如果必须递归复制,最好使用z进行压缩和使用r选项。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.