免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: thupinUnion
打印 上一主题 下一主题

rm中,八成你也遇到过的问题 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2010-08-05 17:54 |只看该作者
本帖最后由 sellie 于 2010-08-05 17:55 编辑

rm 后面的{}有问题. rm会以为要删一个叫{}的文件


mv xxx /tmp/ && rm -rf * && mv /tmp/xxx ./
这个比较好. 朴素使用. 容易想到.

论坛徽章:
0
22 [报告]
发表于 2010-08-05 18:56 |只看该作者
哪位高手能推荐本关于脚本方面的书呀?

论坛徽章:
0
23 [报告]
发表于 2010-08-05 21:25 |只看该作者
你说的有理,那么我再改一下
                     ls * | grep -vw "XXX" | xargs rm -f
   这 ...
thupinUnion 发表于 2010-08-05 15:47


我的 ls 是做过 alias 的

  1. alias ls='ls -aF --color=auto'
复制代码
ls * 在我这里恐怕就错误了,因为连 ./ ../ 也被 list 出来了,如果一起拿去 rm 岂不是完蛋了?

当然了,如果一定要用,也是可以修改的,就好像从北京一直往北走最终也能到海南一样
如果仅为了满足生产环境的需求,还是稳当点好呀

论坛徽章:
0
24 [报告]
发表于 2010-08-06 08:38 |只看该作者
本帖最后由 joeguan2 于 2010-08-06 08:40 编辑
你说的有理,那么我再改一下
                     ls * | grep -vw "XXX" | xargs rm -f
   这 ...
thupinUnion 发表于 2010-08-05 15:47


ls | grep -v "^XXX$" | xargs rm
这个也不错啊,仅保留XXX文件。sh下可以,csh下不可以

论坛徽章:
0
25 [报告]
发表于 2010-08-06 08:43 |只看该作者
rm 后面的{}有问题. rm会以为要删一个叫{}的文件


mv xxx /tmp/ && rm -rf * && mv /tmp/xxx ./
这个比 ...
sellie 发表于 2010-08-05 17:54

挺朴素的,若xxx文件很大两次mv就比较浪费时间了

论坛徽章:
0
26 [报告]
发表于 2010-08-06 09:43 |只看该作者
支持把不想删除的文件移到其他目录,删除后再移回来的!虽然稍微麻烦,但是比较稳当!!

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
27 [报告]
发表于 2010-08-06 09:49 |只看该作者
回复 9# platinum


    这个方法比较稳妥。但没有考虑.*文件吧。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
28 [报告]
发表于 2010-08-06 09:51 |只看该作者
可以利用shell的路径匹配功能。

执行rm前,最好确认,这是一个好习惯。

论坛徽章:
0
29 [报告]
发表于 2010-08-06 09:53 |只看该作者
挺朴素的,若xxx文件很大两次mv就比较浪费时间了
joeguan2 发表于 2010-08-06 08:43


若移动的源和目的同属于一个分区,那么是非常很快的

  1. root@platinum:/
  2. # ll test.dat
  3. -rw-r--r-- 1 root root 1073741824  8月  6 09:51 test.dat
  4. root@platinum:/
  5. # time mv test.dat /tmp/

  6. real        0m0.001s
  7. user        0m0.001s
  8. sys        0m0.001s
  9. root@platinum:/
  10. # time mv /tmp/test.dat ./

  11. real        0m0.002s
  12. user        0m0.001s
  13. sys        0m0.001s
  14. root@platinum:/
  15. # ll test.dat
  16. -rw-r--r-- 1 root root 1073741824  8月  6 09:51 test.dat
  17. root@platinum:/
  18. #
复制代码

论坛徽章:
0
30 [报告]
发表于 2010-08-06 09:55 |只看该作者
回复  platinum


    这个方法比较稳妥。但没有考虑.*文件吧。
blackold 发表于 2010-08-06 09:49


确实没有考虑 .* 文件,但可以根据用户的具体需求做相应的预先移动排除工作
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP