从“查找”中排除目录列表

从“查找”中排除目录列表

我正在使用 rsyncrypto 备份我的一些用户目录。我想从加密中排除一些子目录。我读到最好的方法是将 find 的输出通过管道传输到 rsyncrypto。

下面是一个排除名为 tmp 的目录的 find 命令:

find ~/Documents -type d -not \( -name tmp -prune \)

我有六七个这样的目录需要排除。有没有一种简单的方法可以在 find 命令中列举所有这些目录?

答案1

您可以使用正则表达式:

find ~/Documents -type d ! \( -regex '.*/\(foo\|bar\|baz\)/?$' -prune \)

请记住,正则表达式匹配整个目录/文件结构而不仅仅是基本名称。

答案2

find ~/ -type d \! -name folder1 -and \! -name folder2

相关内容