如何使用grep和rm删除文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用grep和rm删除文件?相关的知识,希望对你有一定的参考价值。

grep -n magenta *| rm *

grep: a.txt:没有这样的文件或目录

grep: b:没有这样的文件或目录

上面的命令删除目录中存在的除。,..之外的所有文件。它应该只删除那些包含“magenta”一词的文件

此外,尝试grep magenta * -exec rm '{}' ;但没有运气。任何的想法?

答案

使用xargs

grep -l --null magenta ./* | xargs -0 rm

xargs的目的是在stdin上获取输入并将其放在其参数的命令行上。

选项的作用如下:

  • -l选项告诉grep不要打印匹配的文本,而只是打印包含匹配文本的文件的名称。
  • --null选项告诉grep将文件名与NUL字符分开。这样可以安全地处理文件名的所有庄园。
  • xazgs的-0选项将其输入视为NUL分隔。
另一答案

Here is a safe way:

grep -lr magenta . | xargs -0 rm -f --
  • -l打印与搜索模式匹配的文件的文件名。
  • -r对给定目录magenta中的模式.执行递归搜索。如果这不起作用,请尝试-R。 (即,作为多个名称而不是一个)。
  • xargs -0将文件名从grep提供给rm -f
  • --经常被遗忘,但标记选项的结尾并允许删除名称以-开头的文件非常重要。

如果您想查看哪些文件即将被删除,只需删除| xargs -0 rm -f --部分即可。

以上是关于如何使用grep和rm删除文件?的主要内容,如果未能解决你的问题,请参考以下文章

rm排除指定文件或指定文件夹下文件

rm删除某文件之外的所有文件

Linux中的find和grep命令对查找到的文件如何处理啊

find与rm实现查找并删除目录或文件

linux中find与rm实现查找并删除目录或文件

linux 系统下面,rm -rf 删除的文件能找回来吗?