mv删除时排除某些文件

发布时间:2019-11-01编辑:脚本学堂
本文介绍下,在linux下使用mv命令删除文件时,排除掉某些文件的操作方法,有需要的朋友参考下。

本节内容:
linuxjishu/13997.html target=_blank class=infotextkey>mv命令删除时排除某些文件。

在linux操作系统下,当前目录下的全部文件移到某个子目录下,先建好目录:
mkdir myfolder
然后,用mv命令把全部文件移进去,稍等,这里可不想把myfolder移到myfolder里面(事实上也不会,linux会提示一个错误 mv: 无法将目录"myfolder" 移动至自身的子目录"./myfolder/myfolder" 下)。

mv还好办,但换成是rm命令呢?
要删除该目录下的除myfolder之外的其他文件和目录,如何实现呢?

这里分享二个方法,供大家参考。

方法1,使用find命令
 

复制代码 代码示例:
find -maxdepth 1 -not -name myfolder -not -name . -exec rm -rf {} ;

也可以写成这样:
 

复制代码 代码示例:
find -maxdepth 1 ! -name myfolder ! -name . -exec rm -rf {} ;

说明:! 等同于 -not

方法2,也是使用find命令,不过用到了正则表达式
 

复制代码 代码示例:
find -not -regex './myfolder.*' -not -regex '.' -exec rm -rf {} ;

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