除了手动排除扩展名(例如*.txt
、*.pdf
、*.jpg
OR 设置-maxdepth
或使用)之外,rsync 或 cp 是否有命令排除任何类型的文件(与 rsync 一起使用,也--exclude=dir/*
排除下面的所有子文件夹和所有文件)?dir/
我只使用它时遇到了一些麻烦-type d
,但其中一个rsync
或cp
两个都需要-r
,当我使用-r
它时,无论我是否使用上面的任何排除命令,它都会递归地复制文件夹,这会变得一团糟。
一个相关的问题在这里:cp AND rsync 从所有子目录中排除所有类型的所有文件,仅保留目录
[编辑]:我发现它的rsync -r -t -v --exclude=*.*
工作方式与rsync -r -t -v --exclude=dir/*
在第一种情况下,它排除所有文件类型,file.extension
本质上相当于find -type d
rsync 的版本
在第二种情况下rsync -r -t -v --exclude=dir/*
,这基本上排除了 /dir 下的所有文件和子文件夹以及这些子文件夹内的文件和子文件夹等。使其工作方式类似于 find 。 -最大深度0
答案1
您可以使用以下 rsync 选项仅复制目录树:
rsync -av -f"+ */" -f"- *" /path/to/src /path/to/dest/
命令有详细解释:
https://www.cyberciti.biz/faq/unix-linux-bsdosx-copying-directory-structures-trees-rsync/