rm所有文件?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (49)

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

textfile.txt
backup.tar.gz
script.php
database.sql
info.txt
提问于
用户回答回答于
rm !(textfile.txt|backup.tar.gz|script.php|database.sql|info.txt)

需要在Bash中启用extGLOB(扩展模式匹配)(如果没有启用):

shopt -s extglob
用户回答回答于
find [path] -type f -not -name 'textfile.txt' -not -name 'backup.tar.gz' -delete

如果你不指定-type f查找,列出你不想要的目录。

或者使用一般的解决方案find | xargs

find [path] -type f -not -name 'EXPR' -print0 | xargs -0 rm --

例如,删除当前目录中的所有非txt文件:

find . -type f -not -name '*txt' -print0 | xargs -0 rm --

print0-0是否有任何应该被删除的文件名的空间需要组合。

所属标签

可能回答问题的人

  • 天使的炫翼

    17 粉丝531 提问36 回答
  • 富有想象力的人

    3 粉丝0 提问30 回答
  • 学生

    3 粉丝476 提问28 回答
  • o o

    4 粉丝494 提问27 回答

扫码关注云+社区

领取腾讯云代金券