admin管理员组文章数量:1660142
有时,你会遇到一种情况,你需要删除目录中的所有文件或只是清除目录,删除所有文件,除了给定类型的文件(以特定的扩展名结束)。
在本文中,我们将告诉你如何在目录中删除文件,除了某些文件扩展名或使用RM类型, 找到并GLOBIGNORE命令。
在我们进一步移动之前,让我们从简单地看一看Linux中的一个重要概念 - 文件名模式匹配,这将使我们能够处理我们的问题。
通配符或元字符的字符串:
* -零个或多个字符匹配
? -匹配任何单个字符
[seq] -序列中的任何字符相匹配
[!seq] -匹配任何字符不是以次
我们将在这里探讨三种可能的方法,包括:
使用扩展模式匹配操作符删除文件
的不同的扩展的模式匹配运算符如下,其中图案列表是包含一个或多个文件名的列表中列出,使用分离|字符:
*(pattern-list) -零个或多个指定的模式相匹配
?(pattern-list) -匹配零次或一次指定模式
+(模式列表) -匹配指定模式的一次或多次出现
@(pattern-list) -匹配指定的模式之一
!(pattern-list) -匹配任何东西,除了给定的模式之一
要使用它们,如下启用extglob shell选项:
# shopt -s extglob
1.要删除所有文件,除了文件名的目录中,键入以下命令:
$ rm -v !("filename")
在Linux中删除除一个文件之外的所有文件
2.要删除与文件名1和文件名2以外的所有文件:
$ rm -v !("filename1"|"filename2")
除了Linux中的少量文件之外,删除所有文件
3.下面的例子说明如何删除比所有其他所有文件.zip交互文件:
$ rm -i !(*.zip)
删除除Linux中的Zip文件之外的所有文件
4.接下来,你可以在一个目录中的所有删除所有文件除了.zip和.odt文件如下,同时显示正在做什么:
$ rm -v !(*.zip|*.odt)
删除除某些文件扩展名之外的所有文件
一旦你拥有所有必需的命令,关闭,像这样的extglob外壳选项:
$ shopt -u extglob
使用Linux find命令删除文件
根据这种方法,我们可以使用find命令只用适当的选项,或者与通过采用流水线如下形式xargs的命令结合:
$ find /directory/ -type f -not -name 'PATTERN' -delete
$ find /directory/ -type f -not -name 'PATTERN' -print0 | xargs -0 -I {} rm {}
$ find /directory/ -type f -not -name 'PATTERN' -print0 | xargs -0 -I {} rm [options] {}
5.以下命令将从除了删除所有文件.gz在当前目录下的文件:
$ find . -type f -not -name '*.gz'-delete
命令查找 - 删除除了.gz文件之外的所有文件
6.使用管道和xargs的 ,您对上述修改如下情况:
$ find . -type f -not -name '*gz' -print0 | xargs -0 -I {} rm -v {}
使用find和xargs命令删除文件
7.让我们看一个额外的例子,下面的命令将消灭排除所有文件.gz , .odt和.jpg在当前目录下的文件:
$ find . -type f -not \(-name '*gz' -or -name '*odt' -or -name '*.jpg' \) -delete
除文件扩展名外,删除所有文件
使用Bash GLOBIGNORE变量删除文件
然而,最后一种方法,只适用于bash。在这里,GLOBIGNORE变量存储一个冒号分隔的模式列表(文件名)由路径扩展被忽略。
GLOBIGNORE变量,如下所示:
$ cd test
$ GLOBIGNORE=*.odt:*.iso:*.txt
在这种情况下,比其他所有的文件.odt , .iso和.txt文件与从当前目录中删除。
现在运行命令清理目录:
$ rm -v *
此后,关闭GLOBIGNORE变量:
$ unset GLOBIGNORE
使用Bash GLOBIGNORE变量删除文件
注意 :要了解上面的命令所使用的标志的含义,请参见我们在各种插图中使用的每个命令的手册页。
就这样!如果您有任何其他命令行技术为同一目的,不要忘记通过我们的反馈部分与我们分享以下。
版权声明:本文标题:删除计算机文件的几种方法,3种方式删除目录中的所有文件,除了一个或少量带扩展名的文件... 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729843994a1214919.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论