终端:删除除 .nef 或 .jpg 之外的所有内容

终端:删除除 .nef 或 .jpg 之外的所有内容

我在 Mac 上使用 Mountain Lion。我想使用终端删除目录中所有不以 .psd、.jpg 或 .nef 结尾的文件。我该怎么做?提前致谢!

答案1

如果您使用 Bash,则可以使用扩展的通配符函数:

shopt -s extglob

然后,删除除.nef.jpg.psd文件之外的所有内容:

rm !(*.nef|*.jpg|*.psd)

您可以使用ls而不是 来测试它rm。这里,!反转匹配。请注意,这也匹配目录,但如果不将选项传递-r给 ,则无法删除它们rm


另一种方式是find

find . -maxdepth 1 -type f \
! \( -name '*.nef' -or -name '*.psd' -or -name '*.jpg' \) -delete

首先通过删除选项来测试此命令-delete。此处,对!括号中的表达式取反。

相关内容