假设我有一个目录,其中包含以下文件:
ls
ABC BCD CDE DEF abc bcd cde def Abc
如何删除所有文件名全为大写字母的文件?(在这种情况下,删除ABC BCD CDE DEF
)
使用GNU find命令:
find . -maxdepth 1 ! -name '*[![:upper:]]*' -delete
shopt -s extglob
rm ./!(*[![:upper:]]*)
bash
中启用了扩展的globbing模式,然后使用扩展的globbing模式./!(*[![:upper:]]*)
匹配当前目录中所有不包含任何非大写字符(即只有大写字符)的名称。
basename
与tr '[:lower:]' '[:upper:]'
的输出进行比较(暂时无法测试)。 - Matthieu