【发布时间】:2014-10-20 04:45:41
【问题描述】:
假设给定目录中有许多文件具有各种文件扩展名或根本没有扩展名,只是文件名。其中一些文件包含字符串“\/for\/endetta”。
如何找到并删除该目录中与此模式匹配的所有文件?我可以通过使用来做到这一点:
find -type f -exec egrep -Il '\/for\/endetta' {} \;|xargs rm -fv
但是没有 xargs 可以做到吗?
以及如何正确转义 \s 和 /s 等。
【问题讨论】:
-
find -type f -exec grep -q '\/for\/endetta' {} \; -delete之类的东西应该可以工作(因为 -exec 将获取它运行的命令的退出状态),但我现在没有时间检查它。将-delete替换为-print进行检查。 -
您好,感谢您的尝试。可悲的是它没有用。该命令似乎正在执行(没有引发任何错误),但它没有删除任何包含指定字符串的文件。
标签: design-patterns grep find xargs