Linux下使用rm删除文件,并排除指定文件

276 阅读1分钟

删除单个文件

rm a.html

强制删除文件,无需确认

rm -rf a.html

删除文件夹

rm -rf demo

删除目录下全部文件,包括文件夹

rm -rf *

删除全部文件,但保留1.txt

rm -rf !(1.txt)

删除全部文件,保留1.txt和2.txt

rm -rf !(1.txt|2.txt)

删除全部文件,保留1.txt

find * | grep -v 1.txt | xargs rm

这里我们要特别注意grep的-v参数,-v参数表示反选,比如我们上面指定了-v 1.txt,即排除掉1.txt,选中其他全部文件。所以这样执行之后1.txt就被排除了

删除全部文件,保留1.txt和2.txt

find * | grep -v '\(1.txt\|2.txt\)' | xargs rm

这里要特别留意,括号()跟括号内的竖线|需要添加\进行转义,否则会报错