首页 > 解决方案 > find / -iregex ".*large_files.*" 跑不完

问题描述

我运行命令来查找名为".*large_files.*"

[root@iz2ze9wve43n2nyuvmsfx5z ~]# find / -iregex ".*large_files.*"
/root/search_large_files.py

它找到了文件,但即使我将其放置半个多小时,光标也会不停地闪烁。

我的代码中导致问题的错误是什么?

标签: bashfind

解决方案


好吧,您可能只是拥有庞大的文件系统 :-)

但是,如果您认为它不应该花费那么长时间,那么您的挂载点可能会比正常速度慢,例如 NFS 挂载,您必须通过网络获取文件信息。

find /在这种情况下,如果您自己运行,您可能会看到速度变慢。如果它输出到外部位置(例如,我不知道,在南极洲运行的 ZX80),输出速率可能会显示这一点,您将能够识别它发生在层次结构中的哪个位置。

另一种可能性是将其限制在您所在的实际文件系统中,以最大程度地减少它外部的机会。那将是通过使用xdev标志来防止它跨越文件系统。在具有一个根文件系统但为 C 和 D 主机驱动器挂载的 VM 上,我将时间从 2 分钟缩短到 17 秒。

当然,这不会转到其他本地文件系统,但如果有必要,您可以编写一个脚本来xdev在所有标记的文件系统ext4(以及您认为是本地的任何其他文件系统)上查找(使用)该文件。


推荐阅读