Linux下使⽤rm删除⽂件,并排除指定⽂件(亲测可⾏)rm是我们在Linux下删除⽂件经常⽤到的命令,但是有时候我们⽬录下有很多个⽂件想要删除,偏偏却要保留其中1个或⼏个⽂件,那怎么办呢?很多新⼿朋友可能会采取⼀个⼀个⽂件删除的⽅法来操作,但是如果⽂件很多呢?删到啥时候啊~~
今天我们就来教⼤家使⽤rm命令删除⽂件的时候如何排除指定的⽂件(不删除指定⽂件)。⾸先我们来看⼀下平时我们是怎么使⽤rm命令的。
1、删除单个⽂件
2、强制删除⽂件,⽆需确认
rm -
3、删除⽂件夹
何猷君 智商rm -rf mydir
4、删除⽬录下全部⽂件,包括⽂件夹
rm -rf *
5、删除全部⽂件,但保留1.txt
rm -rf !(1.txt)
正常情况下是全部⽂件被删除了,只留下了1.txt,但是有时候我们的系统没配置好,可能会报错,例如下⾯这种:
root@abc:/home/# rm -rf !(1.txt)
-bash: !: event not found
上⾯这种情况是因为我们的系统没有开启通配符功能,我们执⾏下⾯的命令开启通配符功能先:
shopt -s  extglob
查看通配符功能是否开启,on表⽰已经开启
shopt -s
然后我们再次执⾏前⾯的命令就可以看到⽂件已经全部删除了,只保留了1.txt
四年级上册语文期末测试卷电信员工工作总结rm -rf !(1.txt)环境描写的作用
6、删除全部⽂件,保留1.txt和2.txt
rm -rf !(1.)
上⾯我们说的都是直接⽤rm + !(叹号)来排除⽂件的,下⾯我们搞个⾼深⼀点的,⽤find + grep + xargs三个命令⼀起⽤
7、删除全部⽂件,保留1.txt
波戈在哪find * | grep - | xargs rm
这⾥我们要特别注意grep的-v参数,-v参数表⽰反选,⽐如我们上⾯指定了-,即排除掉1.txt,选中其他全部⽂件。所以这样执⾏之后1.txt就被排除了
8、删除全部⽂件,保留1.txt和2.txt
find * | grep -v '\(1.txt\|2.txt\)' | xargs rm
这⾥要特别留意,括号()跟括号内的竖线|需要添加\进⾏转义,否则会报错
今天讲的就这些,都是⾮常实⽤的技巧,⼤家赶紧动⼿试试吧经典美剧排行榜