Cyc*_*lic 6 command-line bash rm grep ls
我已经安装(编译)了 emerald。该命令make uninstall不起作用(没有生成文件,因为它只是一个脚本)。所以我决定手动删除文件。但是有很多文件。
我尝试了一些东西,但没有奏效。所以我来到这里寻求一些建议。
ls -R | grep blabla*我可以添加的命令来显示文件目录(它只显示文件名)ls -R | grep bla* | rm吗?如果 'aname' 应该是文件名的开始部分,它会是,从当前目录:
find -name "aname" -delete
Run Code Online (Sandbox Code Playgroud)
顺便提一句。:
grep "bla"* somewhere
Run Code Online (Sandbox Code Playgroud)
几乎总是错误的,因为 grep 已经进行了部分匹配,这意味着,它可以简单地找到 bla、blafasel 和 xybla
grep bla somewhere
Run Code Online (Sandbox Code Playgroud)
由于误解,删除了答案的旧部分:
在当前目录中,如果您在所有文件中查找“aname”一词,则可以使用:
find -exec grep "aname" {} ";" -delete
Run Code Online (Sandbox Code Playgroud)
xargs您正在寻找的是、find和的组合rm。
find将列出与您的条件匹配的所有文件,然后将它们写入(以空值终止)到stdout,该文件将通过管道传输到xargs。xargs将采用以 null 结尾的字符串并将它们用作 的参数rm。
find -L /path/to/dir -name "*name*" -print0 |xargs -0 -r rm
Run Code Online (Sandbox Code Playgroud)
来源: http: //linuxcommando.blogspot.com/2007/10/find-xargs-pipe.html