我正在尝试扫描文件系统以查找与特定关键字匹配的文件,然后删除它们。到目前为止我有这个:
find . -iregex '.*.new.*' -regex '.*.pdf*'
然后如何将此命令的结果传输到删除命令(例如rm
)
答案1
一种方法是扩展文件列表并将其作为参数传递给 rm:
$ rm $(find . -iregex '.*.new.*' -regex '.*.pdf*')
**如果文件名中包含空格或换行符,则会失败。
您可以使用 xargs 构建 rm 命令,如下所示:
$ find . … … | xargs rm
** 换行符或空格也会失败
或者更好的是,要求find
执行命令 rm:
$ find . … … -exec rm {} \;
但最好的解决方案是直接在 find 中使用删除选项:
$ find . -iregex '.*.new.*' -regex '.*.pdf*' -delete