我有一个文件夹里面有成千上万个文件,它们的命名方式是23123、123r3883、3929388394j、f38238d等等。我需要删除所有文件名长度大于9的文件。请问我该如何操作?
??????????*
匹配文件名至少包含10个字符。因此,只要文件的数量不是太多,你就可以使用。echo rm -- ??????????*
xargs
来分割名称:printf '%s\0' -- ??????????* | xargs -r0 echo rm
echo rm -- *(.Ne:'[[ $#REPLY -gt 9 ]]':)
或者
print -rNC1 -- *(.Ne:'[[ $#REPLY -gt 9 ]]':) | xargs -r0 echo rm
for f in *; do
[[ -f $f && $#f -gt 9 ]] && echo rm -- "$f"
done
echo
。find -maxdepth 1 -type f -name "?????????*" -delete
- pLumo