有什么命令可以只排除所有类型的文件吗?

有什么命令可以只排除所有类型的文件吗?

除了手动排除扩展名(例如*.txt*.pdf*.jpgOR 设置-maxdepth或使用)之外,rsync 或 cp 是否有命令排除任何类型的文件(与 rsync 一起使用,也--exclude=dir/*排除下面的所有子文件夹和所有文件)?dir/

我只使用它时遇到了一些麻烦-type d,但其中一个rsynccp两个都需要-r,当我使用-r它时,无论我是否使用上面的任何排除命令,它都会递归地复制文件夹,这会变得一团糟。

一个相关的问题在这里:cp AND rsync 从所有子目录中排除所有类型的所有文件,仅保留目录

[编辑]:我发现它的rsync -r -t -v --exclude=*.*工作方式与rsync -r -t -v --exclude=dir/*

在第一种情况下,它排除所有文件类型,file.extension本质上相当于find -type drsync 的版本

在第二种情况下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/

相关内容