rsync:仅在一个目录中排除特定文件类型
rsync: Exclude specific filetype in only one directory
我使用 rsync 备份我的数据,并希望仅排除一个目录(及其子目录)中的特定文件类型。例如我有:
$ ls Source/
Folder1/a.tar
Folder1/b.dat
Folder2/c.tar
Folder2/d.dat
Folder2/Subfolder3/e.tar
Folder2/Subfolder3/f.dat
Folder2/Subfolder3/g.pdf
现在我想同步除 .tar 文件之外的所有文件 Folder2 及其子文件夹。最后它应该是这样的:
$ ls Target/
Folder1/a.tar
Folder1/b.dat
Folder2/d.dat
Folder2/Subfolder3/f.dat
Folder2/Subfolder3/g.pdf
有人知道怎么做吗?我尝试了 --exclude
选项,但没有成功。
rsync 手册说
INCLUDE/EXCLUDE PATTERN RULES
...
o use ’**’ to match anything, including slashes.
所以你可以做到
rsync -a --exclude='Folder2/**.tar' Source/ Target
请注意,这不同于 bash 的 globstar 选项,您将在其中使用 Folder/**/*.tar
。
我使用 rsync 备份我的数据,并希望仅排除一个目录(及其子目录)中的特定文件类型。例如我有:
$ ls Source/
Folder1/a.tar
Folder1/b.dat
Folder2/c.tar
Folder2/d.dat
Folder2/Subfolder3/e.tar
Folder2/Subfolder3/f.dat
Folder2/Subfolder3/g.pdf
现在我想同步除 .tar 文件之外的所有文件 Folder2 及其子文件夹。最后它应该是这样的:
$ ls Target/
Folder1/a.tar
Folder1/b.dat
Folder2/d.dat
Folder2/Subfolder3/f.dat
Folder2/Subfolder3/g.pdf
有人知道怎么做吗?我尝试了 --exclude
选项,但没有成功。
rsync 手册说
INCLUDE/EXCLUDE PATTERN RULES
...
o use ’**’ to match anything, including slashes.
所以你可以做到
rsync -a --exclude='Folder2/**.tar' Source/ Target
请注意,这不同于 bash 的 globstar 选项,您将在其中使用 Folder/**/*.tar
。