rsync排除目录或文件

1. 要排除特定文件,请将文件的相对路径传递给--exclude选项。在下面的例子中,文件src_directory/file.txt不会被传输:

   rsync -a --exclude 'file.txt' src_directory/ dst_directory/

2. 排除特定目录与排除文件相同,只需将目录的相对路径传递给--exclude选项,如下图所示:

   rsync -a --exclude 'dir1' src_directory/ dst_directory/

3. 如果你想排除目录内容,但不是目录本身,请使用dir1/*代替dir1:

   rsync -a --exclude 'dir1/*' src_directory/ dst_directory/

4. 要排除多个文件或目录,只需指定多个--exclude选项,例如:

   rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/

5. 如果您只用--exclude选项来排除多个文件或目录,您可以用括号{}列出您想要排除的文件和目录,中间用逗号隔开,如下所示:

    rsync -a --exclude={'file1.txt','dir1/*','dir2'} src_directory/ dst_directory/

6. 如果要排除的文件或者目录的数量很大,可以在一个文件中指定要排除的文件和目录,并将文件传递给exclude-from选项,而不是使用多个--exclude选项。

   rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/

   cat exclude-file.txt   //指定一个文件,然后将需要排除的文件或目录,罗列清单,写绝对路径。

   file1.txt

   dir1/*

   dir2

7. 通过管道将find命令的输出传输到rsync:

   find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/

  -printf %P\\0\\n – 将从文件路径中删除src_directory/
  --files-from=- – 意味着只包含来自标准输入的文件(从find命令传递的文件)。

 结束。

 

posted @ 2023-02-17 11:46  巴州夜雨  阅读(804)  评论(0编辑  收藏  举报