使用 find 排除多个文件类型
Excluding multiple filetypes with find
我有一个包含 20k 多张图片的文件夹,大多数图形用户界面文件管理器(如 dolphin)无法管理这么多数据。
所以我决定改用 bash。我的问题如下:
- 大多数文件是
*.IMG
或 *.LBL
个文件
- 我对那些文件不感兴趣。我找其他人
- with
find . -type f -not -name "*.LBL"
我可以看到所有文件而不是 *.LBL
- 与
find . -type f -not -name "*.IMG"
我能够看到所有文件而不是 *.IMG
- 两者都不是很有用,因为它仍然填满了我的终端
- 两者结合似乎都行不通:
find . -type f -not -name "*.LBL" -o -not -name "*.IMG"
查看文件夹中不包括多个文件后缀的文件的正确方法是什么?
组条件,我认为 -o -not 没有按预期工作。试试这个:
find . -type f -not \( -name "*.LBL" -o -name "*.IMG" \)
您可以使用 bash 的 extended pattern matching(可能必须在带有 shopt -s extglob
的脚本中启用;通常在交互式 shell 中默认启用) :
printf "%s\n" !(*.LBL|*.IMG)
我有一个包含 20k 多张图片的文件夹,大多数图形用户界面文件管理器(如 dolphin)无法管理这么多数据。
所以我决定改用 bash。我的问题如下:
- 大多数文件是
*.IMG
或*.LBL
个文件 - 我对那些文件不感兴趣。我找其他人
- with
find . -type f -not -name "*.LBL"
我可以看到所有文件而不是*.LBL
- 与
find . -type f -not -name "*.IMG"
我能够看到所有文件而不是*.IMG
- 两者都不是很有用,因为它仍然填满了我的终端
- 两者结合似乎都行不通:
find . -type f -not -name "*.LBL" -o -not -name "*.IMG"
查看文件夹中不包括多个文件后缀的文件的正确方法是什么?
组条件,我认为 -o -not 没有按预期工作。试试这个:
find . -type f -not \( -name "*.LBL" -o -name "*.IMG" \)
您可以使用 bash 的 extended pattern matching(可能必须在带有 shopt -s extglob
的脚本中启用;通常在交互式 shell 中默认启用) :
printf "%s\n" !(*.LBL|*.IMG)