如何在 Linux 中更快地查找

如何在 Linux 中更快地查找

我有一些目录后面带有奇怪的字符,例如 ^M。它们是意外创建的,我想删除它们。

我列出目录ls -iql并记下它们的 inode 编号,然后尝试通过 inode 编号搜索来删除它。

find . -inum 7990028 -exec rmdir -i {} \;

但是这个命令太慢了。我只得到了几百个目录,但目录中有很多文件。我想 find 命令一定是在搜索这些文件。

我该如何改善这种情况?

答案1

命令中的 . 表示“从当前目录搜索”。因此,为了加快搜索速度,您应该位于要删除的目录的上一级目录中。然后,您还可以将搜索深度限制在当前目录中,也可以仅按目录进行限制:

find . -inum 7990028 -type d -maxdepth 1 -exec rmdir -i {} \;

答案2

由于您知道有问题的字符是不可打印的,因此您可以简单地使用

rm -rf *[^[:print:]]*

答案3

删除所有包含 的文件名^M可能比查找要容易得多。

rm -rf *CtrlVCtrlM*

相关内容