列出名称中包含字母字符和任何其他符号(即数字、标点符号等)的文件,并按大小对其进行排序



我需要帮助修改我已经写过的命令。

这就是我能够实现的:

find -type f -name '*[:alpha:]*' -exec ls -ltu {} ; | sort -k 5 -n -r

但是,此命令还会查找仅包含字母字符的文件名,因此我也需要删除它们。我尝试对代码做这样的事情:

find -type f -name '*[:alpha:]*' -and ! -name '[:alpha:]' -exec ls -ltu {} ; | sort -k 5 -n -r

但它什么也没做。我知道我的名字格式有问题,但我不知道如何解决它。

[:alpha:]这样的字符类只能在字符范围内使用,[..]表达式,例如[0-9_[:alpha:]].它们不能单独使用。

[:alpha:]本身是等效于[ahlp:]的字符范围表达式,并与任何字符"ahlp"或冒号匹配。它与字母字符不匹配。

要查找同时包含一个字母字符和至少一个非字母字符的文件,请执行以下操作:

find dir -type f -name '*[[:alpha:]]*' -name '*[^[:alpha:]]*'

最新更新