我已经安装(编译)了 emerald。该命令make uninstall
不起作用(没有 makefile,因为它只是一个脚本)。所以我决定手动删除该文件。但是有很多文件。
我试过一些方法,但是没有效果。所以我来这里寻求一些建议。
- 是否有一个命令
ls -R | grep blabla*
可以添加来显示文件目录(它仅显示文件名) - 有真的吗
ls -R | grep bla* | rm
?
答案1
如果“aname”是文件名的起始部分,那么它将来自当前目录:
find -name "aname" -delete
顺便提一句。:
grep "bla"* somewhere
几乎总是错误的,因为 grep 已经进行了部分匹配,这意味着它只需使用
grep bla somewhere
由于误解,删除了答案的旧部分:
从当前目录,如果您在所有文件中查找单词“aname”,则只需使用:
find -exec grep "aname" {} ";" -delete
答案2
xargs
您正在寻找的是、find
和的组合rm
。
find
将列出所有符合您的条件的文件,然后将它们(以空字符结尾)写入stdout
,然后通过管道传输到xargs
。xargs
将采用以空字符结尾的字符串并将它们用作的参数rm
。
find -L /path/to/dir -name "*name*" -print0 |xargs -0 -r rm
来源:http://linuxcommando.blogspot.com/2007/10/find-xargs-pipe.html
答案3
在其他答案之间:您可以调用rm
而不需要程序xargs
。事实上,您通常可以使用选项exec
来find
代替xargs
。
rm
对于大批量文件,尽可能少地调用:
find /path/to/dir -name "*name*" -exec rm {} +
rm
为每个文件调用一次:
find /path/to/dir -name "*name*" -exec rm {} ";"
还有更详细的选项find
可以在执行命令之前更改目录。