例如:  删除当前文件夹下    .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. 38. ExtJS学习(四)EditorGrid可编辑表格

    转自:https://blog.csdn.net/qq_30739519/article/details/50865060

  2. Secure CRT中解决vim高亮设置的方法

    此文主要是解决vim编程中高亮显示的.原因是: 1.默认情况下,SecureCRT是有自己的终端显示颜色.这样在我们编程中不利于阅读内容. 2.我们必须到Linux系统中进行改进才能真正解决这样的问题 ...

  3. Web开发必须知道的知识点

    Web前端必须知道 一.常用那几种浏览器测试.有哪些内核(Layout Engine) 1.浏览器:IE,Chrome,FireFox,Safari,Opera. 2.内核:Trident,Gecko ...

  4. [Swift通天遁地]九、拔剑吧-(8)创建气泡式页面切换效果

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  5. Django day28 频率组件,解析器

    一:频率组件: 1.频率是什么? 节流,访问控制 2. (1)内置的访问频率控制类SimpleRateThrottle (2)写一个类,继承SimpleRateThrottle class MyThr ...

  6. flask web 表单验证 WTForms

    简介 WTForms 是一个flask集成框架,或者说是库,用于处理浏览器表单提交的数据,它在flask-WTF的基础上扩展并添加了一些随手可得的精巧帮助函数,这些函数将会是在flask里使用表单更加 ...

  7. Django与 Ajax

    什么是json? 定义: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规范)的一个子 ...

  8. Elasticsearch之CURL命令的GET

    这是个查询命令. 前期博客 Elasticsearch之CURL命令的PUT和POST对比 1. 以上是根据员工id查询. 即在任意的查询字符串中添加pretty参数,es可以得到易于我们识别的jso ...

  9. [ CodeForces 865 D ] Buy Low Sell High

    \(\\​\) \(Description\) 给出\(N\)天股票的价钱\(A_1,...,A_N\),每天可以什么都不做,或者买入或卖出\(1\)支股票,分别花出或收入\(A_i\)元,求最大收益 ...

  10. 图解TCP/IP笔记(1)——TCP/IP协议群

    转载请注明:https://www.cnblogs.com/igoslly/p/9167916.html TCP/IP制定  制定:IETF 记录:RFC - Request for comment ...