删除文件的技巧

1. 删除目录内所有文件但保留指定的几个文件

ls -I: --ignore=PATTERN
grep -v: --invert-match


example-01: ls -I

~/tmp/test> ls
f1  f2.php  f3.php  f4.c  f5.c
~/tmp/test> rm -rf `ls -I *.c`	# "PATTERN" 必须加引号
~/tmp/test> ls
f1  f2.php  f3.php  f4.c		# 不加引号就出错
~/tmp/test> rm -rf `ls -I f4.c`	# 如果是文件全名可以不加引号,但是只能指定一个文件名
~/tmp/test> ls
f4.c
~/tmp/test>


example-02: ls -I

~/tmp/test> ls
f1  f2.php  f3.php  f4.c  f5.c
~/tmp/test> rm -rf `ls -I '*.c'`# "PATTERN" 加引号
~/tmp/test> ls
f4.c  f5.c

example-03: egrep -v

~/tmp/test> ls
f1  f2.php  f3.php  f4.c  f5.c
~/tmp/test> rm -rf `ls | grep -v 'f2.php|f4.c'`	# 不能用 grep, 因为 grep 不支持 "|"
~/tmp/test> ls
~/tmp/test> touch f1 f2.php f3.php f4.c f5.c
~/tmp/test> ls
f1  f2.php  f3.php  f4.c  f5.c
~/tmp/test> rm -rf `ls | egrep -v 'f2.php|f4.c'`	# 用 egrep
~/tmp/test> ls
f2.php  f4.c


你可能感兴趣的:(删除文件的技巧)