我想删除主文件中的某些包,但文件名太长 ( google-chrome-stable_current_i386.deb
)。因此,我决定使用命令ls|grep chrome|rm
将文件通过管道传输到 grep 来过滤掉 chrome 文件,然后将其删除。它不起作用,所以我想看看如何做到这一点。
答案1
答案2
你的想法是正确的,只是错过了一些细节。由于您正在处理传入 STDIN 的列表并rm
需要参数,因此您需要使用xargs
.
因此:
ls | grep chrome | xargs rm
应该给你你想要的。
请注意,如果您想删除chrome
文件以外的所有内容,只需添加-v
到该grep
语句即可。
请注意,根据此问题的其他答案,这可能是实现您想要完成的任务的糟糕方法。
答案3
您还可以使用带有通配符的 find 命令:
find . -maxdepth 1 -name '*chrome*' -delete
请注意,“-maxdepth”参数确保 find 仅在当前目录中工作,并且不会递归到子目录。
答案4
touch 0 1 2 3 4 5 6 7 8 9
find . -name \[0-9] -ok rm {} \;
< rm ... ./0 > ? y
< rm ... ./9 > ? y
< rm ... ./8 > ? y
< rm ... ./7 > ? y
< rm ... ./6 > ? y
< rm ... ./5 > ? y
< rm ... ./4 > ? y
< rm ... ./3 > ? y
< rm ... ./2 > ? y
< rm ... ./1 > ? y
^C
...使用-name '*c*.deb'
或其他适合您的模式。