首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从目录中删除除部分文件以外的所有文件

从目录中删除除部分文件以外的所有文件
EN

Stack Overflow用户
提问于 2010-12-01 22:13:11
回答 16查看 200.4K关注 0票数 220

使用sudo rm -r时,如何删除除以下文件以外的所有文件:

代码语言:javascript
复制
textfile.txt
backup.tar.gz
script.php
database.sql
info.txt
EN

回答 16

Stack Overflow用户

发布于 2013-03-06 03:38:45

代码语言:javascript
复制
rm !(textfile.txt|backup.tar.gz|script.php|database.sql|info.txt)

需要在BASH中启用extglob (扩展模式匹配)(如果未启用):

代码语言:javascript
复制
shopt -s extglob
票数 155
EN

Stack Overflow用户

发布于 2010-12-01 23:35:15

假设具有这些名称的文件存在于目录树中的多个位置,并且您希望保留所有这些文件:

代码语言:javascript
复制
find . -type f ! -regex ".*/\(textfile.txt\|backup.tar.gz\|script.php\|database.sql\|info.txt\)" -delete
票数 20
EN

Stack Overflow用户

发布于 2012-05-04 20:37:27

您可以在Bash中使用GLOBIGNORE环境变量。

假设您想删除除php和sql之外的所有文件,则可以执行以下操作:

代码语言:javascript
复制
export GLOBIGNORE=*.php:*.sql
rm *
export GLOBIGNORE=

像这样设置GLOBIGNORE会忽略通配符中的php和sql,比如"ls *“或"rm *”。因此,在设置变量后使用"rm *“将只删除txt和tar.gz文件。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4325216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档