使用sudo rm -r
时,如何删除除以下文件以外的所有文件:
textfile.txt
backup.tar.gz
script.php
database.sql
info.txt
发布于 2013-03-06 03:38:45
rm !(textfile.txt|backup.tar.gz|script.php|database.sql|info.txt)
需要在BASH中启用extglob (扩展模式匹配)(如果未启用):
shopt -s extglob
发布于 2010-12-01 23:35:15
假设具有这些名称的文件存在于目录树中的多个位置,并且您希望保留所有这些文件:
find . -type f ! -regex ".*/\(textfile.txt\|backup.tar.gz\|script.php\|database.sql\|info.txt\)" -delete
发布于 2012-05-04 20:37:27
您可以在Bash中使用GLOBIGNORE环境变量。
假设您想删除除php和sql之外的所有文件,则可以执行以下操作:
export GLOBIGNORE=*.php:*.sql
rm *
export GLOBIGNORE=
像这样设置GLOBIGNORE会忽略通配符中的php和sql,比如"ls *“或"rm *”。因此,在设置变量后使用"rm *“将只删除txt和tar.gz文件。
https://stackoverflow.com/questions/4325216
复制相似问题