grep -n magenta *| rm *
Run Code Online (Sandbox Code Playgroud)
grep: a.txt: 没有相应的文件和目录
grep: b: 没有相应的文件和目录
上面的命令删除目录中存在的除.,..之外的所有文件.它应该只删除那些包含"magenta"一词的文件
还试过grep magenta * -exec rm '{}' \;但没有运气.任何的想法?                     
Joh*_*024 17
用途xargs:
grep -l --null magenta ./* | xargs -0 rm
Run Code Online (Sandbox Code Playgroud)
xargs的目的是在stdin上获取输入并将其放在其参数的命令行上.
选项的作用如下:
该-l选项告诉grep不要打印匹配的文本,而只是打印包含匹配文本的文件的名称.
该--null选项告诉grep将文件名与NUL字符分开.这样可以安全地处理文件名的所有庄园.
该-0选项xargs的对待其输入为NUL分隔.