Linux之删除操作

来源:互联网 发布:sqlyog执行sql文件 编辑:程序博客网 时间:2024/06/11 20:42

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.log2.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

0 0
原创粉丝点击