Shell中删除某些文件外所有文件的3个方法

 更新时间:2014年10月22日 11:29:23   投稿:junjie  
这篇文章主要介绍了Shell中删除某些文件外所有文件的3个方法,即在删除文件时保留一些想要的,其它的则删除,需要的朋友可以参考下

我的一位同事曾经问过我这样一个问题:在 Linux 下,如何 删除目录中除某些文件之外的所有文件?当时,我告诉他可 以通过模式匹配的方法解决。但其实,除此之外,还有其他 的方法,正所谓“条条大路通罗马”。让我们来逐一看看。

假设要删除 ~/Downloads 目录中除 *.iso 和 *.zip 外的 所有文件,那么在 bash 中可以按以下方法处理:

方法1:模式匹配法

复制代码 代码如下:

shopt -s extglob # 确认开启 extglob 选项
cd ~/Downloads
rm -v !(*.iso|*.zip)
!(pattern list) 的作用是匹配除 pattern list 之外 的文件。

方法2:设置变量法

在 bash 中,GLOBIGNORE 可用来设置要忽略的模式匹配 文件,多个模式通过 : 分隔。

复制代码 代码如下:

cd ~/Downloads
export GLOBIGNORE=*.zip:*.iso
rm -v *
unset GLOBIGNORE

方法3:find 搜索法

熟悉 find 的朋友想必知道,find 的威力异常强大,因此 利用它也可解决此问题。

复制代码 代码如下:

cd ~/Downloads
find . -type f -not \( -name '*.zip' -or -name '*.iso' \) -delete

不过还是要提醒大家,rm 操作是非常危险的,切勿炫技,如果你不放心,那么可以先老老实实的逐个或分批删除,也要比事后找回方便的多。

相关文章

  • shell查找当前目录下大于1M的文件的三种方法分享

    shell查找当前目录下大于1M的文件的三种方法分享

    查找当前目录下大于1M的文件的三种方法,有需要的朋友可以参考下
    2013-02-02
  • shell命令实现当前目录下多个文件合并为一个文件的方法

    shell命令实现当前目录下多个文件合并为一个文件的方法

    今天小编就为大家分享一篇关于shell命令实现当前目录下多个文件合并为一个文件的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • linux shell循环:for、while、until用法详解

    linux shell循环:for、while、until用法详解

    这篇文章主要介绍了linux shell下常用的循环for、while、until的用法,这也是脚本之家小编看到的比较详细的文章了,感兴趣的朋友可以参考一下,最好是在环境下自己手工打一份,不要复制
    2019-04-04
  • shell脚本学习之调用脚本将文件打包zip的方法示例

    shell脚本学习之调用脚本将文件打包zip的方法示例

    这篇文章主要给大家介绍了关于shell脚本学习之调用脚本将文件打包zip的方法,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-07-07
  • shell批量curl接口脚本的简单实现方法

    shell批量curl接口脚本的简单实现方法

    这篇文章主要跟大家介绍了关于shell批量curl接口脚本的简单实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用shell具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-08-08
  • linux下通过命令行获取gmail的新邮件

    linux下通过命令行获取gmail的新邮件

    在这篇文章中,我将为你展示 Linux 命令行的另一个漂亮干练的使用案例:访问 Google 的 Gmail 服务,有需要的小伙伴可以参考下。
    2015-05-05
  • 如何正确使用Linux命令–du

    如何正确使用Linux命令–du

    这篇文章主要为大家详细介绍了如何正确使用Linux命令–du,具有一定的实用性,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Linux C中sockaddr和sockaddr_in的区别

    Linux C中sockaddr和sockaddr_in的区别

    这篇文章主要介绍了Linux C中sockaddr和sockaddr_in的区别的相关资料,需要的朋友可以参考下
    2017-07-07
  • linux 查找大目录和大文件的方法(推荐)

    linux 查找大目录和大文件的方法(推荐)

    下面小编就为大家带来一篇linux 查找大目录和大文件的方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • linux shell(.sh)脚本编写和运行入门

    linux shell(.sh)脚本编写和运行入门

    这篇文章主要介绍了linux shell(.sh)脚本编写和运行入门,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09

最新评论