怎样删除某个目录下除了某些文件外的其他的文件?

lishiyong110 2011-08-09 07:42:57
在某个目录dir下,我想删除大多数文件,只有少数文件(例如a.c b.c)保留,有没有什么命令可以直接完成的?
...全文
236 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lishiyong110 2011-08-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lishanchao 的回复:]

引用 6 楼 lishiyong110 的回复:
谢谢各位 思路是对的
但是我在fedora下操作需要这样
ls | grep -v “a.c” | grep -v "b.c" | xargs rm -rfv

如果像各位说的这样写,它会将b.c当作文件,不知道是不是我操作的问题?

Sorry,我們沒有驗證。不是樓主操作的問題。可以這樣寫(\是轉義字符,否則|就被識別為管道):
……
[/Quote]

恩 是的 谢谢了
沭水河畔 2011-08-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lishiyong110 的回复:]
谢谢各位 思路是对的
但是我在fedora下操作需要这样
ls | grep -v “a.c” | grep -v "b.c" | xargs rm -rfv

如果像各位说的这样写,它会将b.c当作文件,不知道是不是我操作的问题?
[/Quote]
Sorry,我們沒有驗證。不是樓主操作的問題。可以這樣寫(\是轉義字符,否則|就被識別為管道):
ls | grep -v "a.c\|b.c" | xargs rm -rfv

如果支持findstr命令的話,可以這樣:
ls | findstr "a.b b.c" | xargs rm -rfv
lishiyong110 2011-08-10
  • 打赏
  • 举报
回复
谢谢各位 思路是对的
但是我在fedora下操作需要这样
ls | grep -v “a.c” | grep -v "b.c" | xargs rm -rfv

如果像各位说的这样写,它会将b.c当作文件,不知道是不是我操作的问题?
ch_984326013 2011-08-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lishanchao 的回复:]
引用 3 楼 jernymy 的回复:

引用 1 楼 braveyly 的回复:
rm -f `ls | grep -v a.c b.c`

这个试试

++

rm -rf `ls | grep -v a.c b.c`

哈哈,也可以加上verbose,換用xargs:
ls | grep -v a.c b.c | xargs rm -rfv
[/Quote]
+1
沭水河畔 2011-08-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jernymy 的回复:]

引用 1 楼 braveyly 的回复:
rm -f `ls | grep -v a.c b.c`

这个试试

++

rm -rf `ls | grep -v a.c b.c`
[/Quote]
哈哈,也可以加上verbose,換用xargs:
ls | grep -v a.c b.c | xargs rm -rfv
jernymy 2011-08-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 braveyly 的回复:]
rm -f `ls | grep -v a.c b.c`

这个试试
[/Quote]
++

rm -rf `ls | grep -v a.c b.c`

freetstar 2011-08-09
  • 打赏
  • 举报
回复
用find查找,配合grep等过滤
braveyly 2011-08-09
  • 打赏
  • 举报
回复
rm -f `ls | grep -v a.c b.c`

这个试试

19,613

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧