首页 > 解决方案 > 如何从目录中删除具有奇怪名称的文件?

问题描述

给定目录0..9.txt中的文件foobar,我怎样才能删除那些奇怪的?

我想出了

find . -regextype egrep -regex ".*[0-9].txt"  | while read file; do    [ `expr match "$file" '[0-9]'`% 2 -eq 0 ] && rm -v "$file" ; done

但它不起作用。我不明白如何正确设置在完整文件名中查找数字并检查其奇偶性。

标签: linuxbash

解决方案


find . -name '*[13579].txt' -delete

如果您find不支持-delete,请使用:

find . -name '*[13579].txt' -exec rm {} \;

或者

find . -name '*[13579].txt' -exec rm {} +

推荐阅读