linux - 删除linux中几乎所有的目录和文件

标签 linux bash ubuntu

快速提问:我想从我当前所在的目录中删除除 1 个文件和 1 个目录之外的所有内容。我该怎么做?

案例场景:

我有一个目录,其中包含三个目录 a b c 和三个文件 1.php 2.php 3.php。我只想删除目录 a、b 和文件 1.php 和 2.php!我很难做到这一点。

解决方案应该扩大规模,即我不想列出所有我确实想删除的文件,只列出应该保留的文件。

我该怎么办?

最佳答案

在庆典中

shopt -s extglob
echo rm -r !(3.php|c)

演示

$ mkdir -p x/a x/b x/c
$ cd x
$ touch {1,2,3}.php
$ ls -F
1.php  2.php  3.php  a/  b/  c/
$ shopt -s extglob
$ echo rm -r !(3.php|c)
rm -r 1.php 2.php a b

参见 pattern matching在 bash 手册中。

关于linux - 删除linux中几乎所有的目录和文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6836120/

相关文章:

macos - 文件名与通配符比较

Linux命令不起作用

regex - 查找并输出与指定正则表达式匹配的范围

java - 如何在 Linux 上安装 Maven 的手册页?

linux - bash 上的脚本,可以吗?

bash - : and # for Bash comments 之间的差异

PHP邮件()不工作

linux - 如何在Linux(Debian/Ubuntu)中正确注册特定的GCC版本?

linux - Debian 9 wifi 不工作

linux - parallel-ssh 使用的 hosts.txt 在哪里