快速提问:我想从我当前所在的目录中删除除 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/