linux - 如何从目录中删除具有奇怪名称的文件?
问题描述
给定目录0..9.txt
中的文件foo
和bar
,我怎样才能删除那些奇怪的?
我想出了
find . -regextype egrep -regex ".*[0-9].txt" | while read file; do [ `expr match "$file" '[0-9]'`% 2 -eq 0 ] && rm -v "$file" ; done
但它不起作用。我不明白如何正确设置在完整文件名中查找数字并检查其奇偶性。
解决方案
find . -name '*[13579].txt' -delete
如果您find
不支持-delete
,请使用:
find . -name '*[13579].txt' -exec rm {} \;
或者
find . -name '*[13579].txt' -exec rm {} +
推荐阅读
- angularjs - 如何在没有触摸输入字段的情况下键入数字?
- s4sdk - S/4HANA 扩展 - 多租户
- android - Viewpager 内的多个 Recyclerview 问题
- c++ - 受保护的数据结构元素按值跨函数传递
- javascript - 如何避免 ajax PUT 的 400 (Bad Request)
- r - 如何更改笔记本 Rmarkdown 中的 dpi 内联代码输出
- apache-spark - spark中的dataframe.show()和dataframe.take()有什么区别?为了提高性能,我们需要增加什么?
- php - 在 Woocommerce 管理员、订单和电子邮件中显示自定义付款字段
- mongodb - 我需要将我的 mongo 集合转换为对象数组到字符串数组
- angular - Angular: [disabled]="isDisabled()" 是正确的方法吗?