例如:  删除当前文件夹下    .c和 .h    文件以外的文件

rm -f   `ls ./ | egrep -v "(.c$|.h$)"`

1. ls 列出所有文件;  

2. egrep -v   查找所有不包含  .c和 .h 的文件;  .c$ —— 以.c 结尾的文件

3. rm -f 强制删除符合条件的文件

egrep  —— 查询 多个 关键字;

除了错误消息和使用消息不同以及 -s 标志的功能不同之外,  egrep
命令与 grep 命令带 -E 标志是一样的。

http://blog.chinaunix.net/uid-22556372-id-1773426.html

今天下午有个任问我如何删除一个目录下的除了想要的文件之外的所有文件。我想了想grep和rm配合一下不正好

么。

于是经过查阅资料得出了一条命令:过程如下。

首先在一个目录下:





zhou@zhou:~/LinuxC/file/test$ ls

1  23sdfwe  88888888  aabb  ag    ghdda     mmm

2  3        aaaaaaaa  abc   asdg  llllllll  wwwww

zhou@zhou:~/LinuxC/file/test$ 





然后我想删除除了包含字符串aa外所有的文件,也就是想留下aabb,aaaaaaaa,这两个文件,其他的全部删除

下面是我的命令:





zhou@zhou:~/LinuxC/file/test$ rm `ls | grep -v "aa"`

grep就是在文件中搜索包含指定字符串的行。

grep加了“-v” 选项就是反一下,找到文件中不包含指定字符串的行。

然后查看一下:





zhou@zhou:~/LinuxC/file/test$ ls

aaaaaaaa  aabb

zhou@zhou:~/LinuxC/file/test$ 





所以了,成功了。

简单的解释一下那条命令吧:rm 删除后面指定的文件

`ls | grep -v "aa" ` 记得外面是反引号(反引号的位置就在标准键盘的数字1的左边),ls:查看当

前目录下所有的文件,使用grep命令过滤一下 grep -v "aa" 就是找出字符串中不带“aa”的。





整体再顺一下:列出文件名不带“aa”串的文件,然后删除他们。OK。





其实说起来简单,当时我也做了好长时间,因为以前没怎么接触grep,因此一开始我想到的办法是使用正则表

达式,但是在做的过程中突然发现了grep使个不错的东西,因此就使用了。





上面的命令使删除带有“aa”串的文件,那如果我只想留下文件aa呢?很简单





zhou@zhou:~/LinuxC/file/test$ rm `ls | grep -v "^aa$" `





在aa前面加上^,后面加上$表示结束符的意思,这个就是完全匹配了。









好了,就这么多。但愿以后能用到这个有用的命令

Linux 下rm+grep删除除去指定文件的剩余所有文件的更多相关文章

  1. linux下rm命令删除文件名中包含特殊字符的文件【转】

    转自:http://blog.itpub.net/143526/viewspace-1060083/ 1. 删除带“-”的文件名的方法 2. 删除包含其它特殊字符的文件 3. 删除系统打不出的乱码文件 ...

  2. Linux下rm -rf删除文件夹报错_ Device or resource busy

    1.错误信息 rm: cannot remove `speechd-centos_6.2-prtl-pred-mf34/modules/t2p/py/third/g2p/.nfs00000000039 ...

  3. linux下创建和删除软、硬链接

    linux下创建和删除软.硬链接 在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件时,索引结点被复制 ...

  4. Linux下c函数dlopen实现加载动态库so文件代码举例

    dlopen()是一个强大的库函数.该函数将打开一个新库,并把它装入内存.该函数主要用来加载库中的符号,这些符号在编译的时候是不知道的.这种机制使得在系统中添加或者删除一个模块时,都不需要重新编译了. ...

  5. Linux下通过受限bash创建指定权限的账号

    在日常业务运维中,有时为了配合解决问题,需要给非运维人员开通系统账号,用于查询日志或代码.通常为了系统安全或避免不必要的误操作等目的,会将账号权限降至最低.下面介绍下在Linux下通过受限bash创建 ...

  6. linux下安装与删除软件

    linux下安装与删除软件 (2005-07-04 11:24:10) 转载▼ 标签: 杂谈 分类: MSN搬家 现在linuxx下的软件大都是rpm,deb.tar.gz和tar.bz2格式.1.r ...

  7. 在linux下一般用scp这个命令来通过ssh传输文件

    在linux下一般用scp这个命令来通过ssh传输文件. 1.从服务器上下载文件scp username@servername:/path/filename /var/www/local_dir(本地 ...

  8. linux下通过iptables只允许指定ip地址访问指定端口的设置方法

    这篇文章主要介绍了linux下通过iptables只允许指定ip地址访问指定端口的设置方法,需要的朋友可以参考下. 首先,清除所有预设置 iptables -F#清除预设表filter中的所有规则链的 ...

  9. windows下类似Linux下的grep命令

    今天要查看windws下代理服务器有哪些IP连接过来,但使用 netstat -na 后出现很多连接会话,不方便查看. 想到Linux下的grep非常方便,于是网络上搜寻,还是有类似的命令findst ...

随机推荐

  1. Horspool和BM算法解析

    最近算法中学到了Horspool,KMP,BM三种算法.接下来给大家做个分享. Horspool算法: 算法思路: 1.分为匹配串,原串 2.从右往左依次匹配: 一旦遇到不匹配的,原串相对于匹配串 移 ...

  2. [转]Linux 正则表达式详解

    转自:http://www.jb51.net/article/42989.htm 一.linux文本查找命令 在说linux正规表达式之前,还介绍下linux中查找文本文件常用的三个命令: 1.gre ...

  3. C# 文件操作【转】

    本文也收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加.拷贝.删除.移动文件.创建目录.递归删除文件夹及文件.指定文件夹下面的所有内容copy到目标文件夹下面.指定文件夹下面的所有内 ...

  4. Java&Xml教程(一)简介

    XML是广泛用于数据传输和存储的技术.Java语言提供个各种各样的API来解析XML,例如DOM.SAX.StAX.JAXB.也还有一些其他的API用于解析XML,例如JDOM.本教程的目的是探索使用 ...

  5. 升级Xcode或 MacOS编译iOS出现resource fork, Finder information, or similar detritus not allowed

    很久没有在网上留下足迹了,冒个泡吧 最近升级了Xcode,编译之前的一个项目是出现问题,问题结尾如下: resource fork, Finder information, or similar de ...

  6. jQuery——尺寸位置

    获取宽:$(".box").width() 设置宽:$(".box").width(200) 获取高:$(".box").height() ...

  7. [Windows Server 2003] 安装网站伪静态

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:安装IIS伪静 ...

  8. hibernate Hql 更新的参数只能设置String类型

    最近在项目中发现一个奇怪的现象,请看下面的代码 实体类MyEmployeeEntity @Table(name="myemployee") public class MyEmplo ...

  9. HDU_1113_字符串处理

    Word Amalgamation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  10. CAD导出黑白色的pdf(com接口)

    主要用到函数说明: IMxDrawModifyTheColor 接口 用来修改图面所有对象的颜色,把它的颜色都修改成一个指定的值. IMxDrawModifyTheColor::Do 修改颜色,详细说 ...