1、递归删除
find -name *.rpt |xargs rm -rf
2、删除目录下所有文档文件
rm *
3、删除目录下所有内容(含文件夹)
rm -rf *
4、删除字符串至行末内容
eg:
文本内容为
abc efc 13344 dkjflj 45988
dkll efc djflkejr 3495969 dlkjfdl
jdslfjf efc dljfldjf 43959586 dljfjfdg
删除所有行中efc后的内容:
sed "s/\(efc\).*$/\1/" filename > result.log
5、删除“-”开头文件
eg:
文件:-area.txt
使用命令:rm -area.txt
将无法完成删除操作,会将-a当作命令选项。需采用以下两种办法:
rm -- -area.txt //应该是告诉rm -area.txt中的-a不是命令选项
or
rm ./-area.txt //应该是告诉命令这是当前目录下的一个文件
也就是说,如果要删除一个文件 -foo ,用一般的 rm 命令是完成不了的。 rm -foo 、 rm \-foo 、 rm "-foo" 、 rm "\-foo" …… 都无法将此文件删除,只能通过 rm -- -foo 或者 rm ./-foo 的方式删除
同样此方法对于其它命令都是通用的
vi -- -c 将生成一个 -c 文件
ls -l -- -c 将显示 -c 文件
6、删除操作中剔除某文件
eg:
某文件夹下有若干后缀为.log的文件,1.log,2.log 3.log 4.log ......等,此时想删除所有后缀名为.log的文件,但保留2.log
eg1:未试验成功
shopt -s extglob #开启扩展通配符
rm -rf !(demo) #删除除了demo的文件
eg2:经试验可行
find /test -not -name "demo" | axrgs rm -rf
eg3:经试验可行
for i in `ls /test`
do
if [ "$i" != "demo" ];then //在“[”后和“]”前的命令必须有空格间隔,否则将报错
rm -rf $i
fi
done