删除文件排除指定文件或者目录方法(linux)


删除文件排除指定文件或者目录方法(linux)
 
以下命令以网站目录www为例做介绍,有时候更新网站的时候需要保留比如图片目录,或者其他目录就需要这样的操作 
实例一: 
删除文件夹内所有文件只保留一个文件命令 
[root@linuxzgf www]# cd html 
[root@linuxzgf html]# ls 
a     dede    include    install  plus        special   templets 
data  images  index.php  member   robots.txt  tags.php  uploads 
[root@linuxzgf html]# rm -rf `ls -I index.php` 
[root@linuxzgf html]# ls 
index.php 
[root@linuxzgf html]# 
注释: 
``是TAB上面那个,不是引号 2010-1-14 
index.php是要保留的文件名字,此名字可以是文件夹也可以是文件名都可以 
实例二: 
删除文件夹内所有文件保留部分文件 
[root@linuxzgf www]# cd html 
[root@linuxzgf html]# ls 
a     dede    include    install  plus        special   templets 
data  images  index.php  member   robots.txt  tags.php  uploads 
[root@linuxzgf html]# rm -rf `ls|egrep -v '(index.php|data)'` 
[root@linuxzgf html]# ls 
data  index.php 
[root@linuxzgf html]# 
ls前的` 符号是tab上面的符号 
()紧跟的是单引号 
index.php|data 是要保留的文件,此处可以保留多个文件 
实例三: 
删除指定扩展名的某类文件但是要保留部分文件 
环境如下:具体环境具体解释和文件名即可 
[root@linuxzgf member]# ls 
ajax_feedback.php     article_edit.php     edit_face.php        js             resetpassword.php   uploads_add.php 
ajax_loginsta.php     buy_action.php       edit_fullinfo.php    login.php      search.php          uploads_edit.php 
album_add.php         buy.php              edit_space_info.php  mtypes.php     shops_orders.php    uploads.php 
album_edit.php        caicai.php           feedback.php         myfriend.php   shops_point.php     uploads_select.php 
archives_add.php      check_card.php       flink_main.php       mypay.php      shops_products.php  visit-history.php 
archives_do.php       config.php           guestbook_admin.php  mystow.php     soft_add.php 
archives_edit.php     content_list.php     images               operation.php  soft_edit.php 
archives_sg_add.php   content_sg_list.php  inc                  paycenter      space 
archives_sg_edit.php  control.php          index_do.php         pm.php         spaceskin.php 
article_add.php       edit_baseinfo.php    index.php            reg_new.php    templets 
[root@linuxzgf member]# 
 
实例四: 
删除当前目录下所有 *.php文件,除了buy.php 
方法一: 
[root@linuxzgf member]# rm -rf `ls *.php |egrep -v buy.php` 
[root@linuxzgf member]# ls 
buy.php  images  inc  js  paycenter  space  templets 
[root@linuxzgf member]# 
方法二: 
[root@linuxzgf member]# rm -rf `ls *.php |awk '{if($0!="buy.php")print $0}'` 
[root@linuxzgf member]# ls 
buy.php  images  inc  js  paycenter  space  templets 
[root@linuxzgf member]# 
实例五: 
排除多个文件 buy.php     caicai.php   login.php 
方法一: 
[root@linuxzgf member]# rm -rf `ls *.php |egrep -v '(buy.php|caicai.php|login.php)'` 
[root@linuxzgf member]# ls 
buy.php     images  js         paycenter  templets 
caicai.php  inc     login.php  space 
[root@linuxzgf member]# 
方法二: 
这里是用ls得到原始数据,也可以用find命令 
[root@linuxzgf member]# rm -rf `find  *.php |egrep -v '(buy.php|caicai.php|login.php)'` 
[root@linuxzgf member]# ls 
buy.php     images  js         paycenter  templets 
caicai.php  inc     login.php  space 
[root@linuxzgf member]# 
此命令只删除了当前目录下的所有php结尾的文件,子目录中的php文件是不会被删除的如inc目录中的php文件在执行命令后还是存在的
 

相关内容

    暂无相关文章