如何使用 rm 和条件文件名

如何使用 rm 和条件文件名

我有一个文件夹,其中有数千个以数字命名的子文件夹(从 1 到 200000)

我想删除所有名为 100000+ 的文件夹(以及其中的文件)

有没有办法从 Linux 命令行执行此操作?

答案1

有几种方法可以做到这一点,但最简单的方法可能是:

rm -r [1-2][0-9][0-9][0-9][0-9][0-9]

我建议您在第一个echo前面放一个rm,以确保它能找到您真正想要删除的目录。

您可能会耗尽命令行的内存,在这种情况下您可能需要使用:

for f in [1-2][0-9][0-9][0-9][0-9][0-9]; do rm -r $f; done

答案2

是的,假设一个 POSIX shell,使用 shell 模式匹配:

rm -rf *???????

在该目录中。请注意,这会匹配任何包含 7 个或更多字符的文件或子目录,因此请小心!

相关内容