如何从目录中删除所有具有特定文件名长度的文件?

如何从目录中删除所有具有特定文件名长度的文件?

我有一个 tmp 目录,里面装满了某个程序创建但未正确清理的各种文件。每个文件的文件名都只有 6 个随机字符。除此之外,目录中还有几十个我不想删除的合法文件。我可以将它们移出,然后 rm -rf 整个目录,但我认为应该有更简单的方法,因为所有合法文件的文件名长度都不为 6。

例子:

-rw-------  1 root root    0 Sep  8 08:59 BxP6dX
-rw-------  1 root root    0 Sep  7 03:29 c93Rb2
-rw-------  1 root root    0 Sep  8 12:29 Cq8S3f
-rw-------  1 root root    0 Sep  8 03:59 CV_6kc
-rw-------  1 root root    0 Sep  7 15:29 d5cBqw
drwxr-xr-x  2 root root   40 Sep  6 16:03 legitimateFile
-rw-------  1 root root    0 Sep  7 21:29 qC5XQD
-rw-------  1 root root    0 Sep  9 04:59 Qid8Rt
-rw-------  1 root root    0 Sep  7 07:29 QIwMjT
-rw-------  1 root root    0 Sep  8 04:29 qp8J8H
-rw-------  1 root root    0 Sep  6 18:40 RcgcD3
-rw-------  1 root root    0 Sep  9 12:59 rIVtWR
-rw-------  1 root root    0 Sep  7 19:29 RpuePj
-rw-------  1 root root    0 Sep  8 17:59 rYJkh2
-rw-------  1 root root    0 Sep  8 09:59 S1WOSJ
-rw-------  1 root root    0 Sep  7 02:59 s3F0OA

在 bash 中有没有简单的方法可以删除随机生成的文件?

答案1

您可以使用? 通配符来代表一个字符。

因此类似的操作rm ??????应该删除所有文件名长度为 6 个字符的文件。

相关内容