手机版
你好,游客 登录 注册
背景:
阅读新闻

Linux下mv命令排除某些文件

[日期:2013-05-02] 来源:Linux社区  作者:Linux [字体: ]

比方说,我想把当前目录下的全部文件移到某个子目录下,先建好目录

mkdir myfolder

然后用mv把全部文件移进去。等等,我可不想把myfolder移到myfolder里面(事实上也不会,linux会提示一个错误 mv: 无法将目录"myfolder" 移动至自身的子目录"./myfolder/myfolder" 下)。mv还好办,但换成是rm呢?我想删除该目录下的除myfolder之外的其他文件和目录。有啥招数呢?

第一招

find -maxdepth 1 -not -name myfolder -not -name . -exec rm -rf {} \;

还可以写成

find -maxdepth 1 \! -name myfolder \! -name . -exec rm -rf {} \;

看出来了 \! 等同于 -not

第二招

find -not -regex '\./myfolder.*' -not -regex '\.' -exec rm -rf {} \;

需要略懂一点正则表达式。

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款