Linux通过Bash中删除“指定文件外的所有文件”方法

木木老贼 互联网营销达人~

在 Linux 下,如何 删除目录中除某些指定文件之外的所有文件?以下是笔者整理的三个方法:模式匹配法,置变量法,find 搜索法.

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

方法1:模式匹配法

  1. -sextglob#确认开启extglob选项
  2. cd~/Downloads
  3. rm-v!(*.iso|*.zip)

!(pattern list) 的作用是匹配除 pattern list 之外 的文件.

方法2:设置变量法

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

  1. cd~/Downloads
  2. exportGLOBIGNORE=*.zip:*.iso
  3. rm-v*
  4. unsetGLOBIGNORE

方法3:find 搜索法

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

  1. cd~/Downloads
  2. find.-typef-not(-name'*.zip'-or-name'*.iso')-delete

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

相关广告
  • Linux通过Bash中删除“指定文件外的所有文件”方法 Linux通过Bash中删除“指定文件外的所有文件”方法 Linux通过Bash中删除“指定文件外的所有文件”方法
相关阅读

Linux通过Bash中删除“指定文件外的所有文件”方法

2019/10/10 17:46:16 | 谷歌SEO算法 | 百度细雨算法