linux - 在 find 命令中排除目录范围

标签 linux shell find

我有一个名为 test 的目录,其中包含日期范围内的子文件夹,例如 0102、...31。这所有子文件夹中都包含 .bz2 文件。我需要使用 find 命令搜索扩展名为 .bz2 的所有文件,但不包括特定范围的目录。我知道 find 。 -name ".bz2"-not -path "./01/*",但是写 -not -path "./01/*" 会很可怜跳过 10 个目录。那么我如何在我的 find 命令中跳过 01..19 子目录?

最佳答案

您可以在模式中为选项 -not -path 使用通配符:

find ./ -type f -name "*.bz2" -not -path "./0*/*" -not -path "./1*/*

这将排除所有以 0 或 1 开头的目录。甚至更好:

find ./ -type f -name "*.bz2" -not -path "./[01]*/*"

关于linux - 在 find 命令中排除目录范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35079274/

相关文章:

xcode - 键盘快捷键,用于在Xcode 4中查找当前选定的文本

linux - 定位无法搜索/开发?

Linux版Windows "nonpaged pool"这种东西存在吗?

python - 如何将linux的find命令的 `maxdepth`选项模拟到python

linux - 在 Linux 中通过脚本安装应用程序

linux - shell 中的数字文件名匹配

linux - 如何使用 sed 或 awk 命令根据另外两个变量的值设置一个变量

linux - 将空参数传递给 sudo -i

java - 如何从shell内的Linux命令获取字符串或值到JAVA?

c# - 所需关键字的正则表达式?