find / -iregex ". * large_files. *" работает бесконечно - PullRequest
0 голосов
/ 28 августа 2018

Я запускаю команду, чтобы найти файлы с именем ".*large_files.*"

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

Файл найден, но курсор светит бесконечно, даже если я оставляю его в покое более получаса.

Что за ошибка в моих кодах, вызывающая проблему?

1 Ответ

0 голосов
/ 28 августа 2018

Ну, может быть, что у вас просто огромные файловые системы: -)

Но, если вы считаете, что это не займет много времени, у вас вполне могут быть точки монтирования, которые работают медленнее, чем обычно, такие как NFS-монтирования, где вам нужно выходить в сеть для получения информации о файле.

В этом случае вы, вероятно, увидите замедление, если просто запустить find / самостоятельно. Если он выходит во внешнее местоположение (например, я не знаю, ZX80 работает в Antartica), скорость вывода может показать это, и вы сможете определить, где в иерархической структуре это происходит.

Другая возможность - ограничить ее действительной файловой системой, чтобы минимизировать вероятность выхода из нее. Это было бы с помощью флага xdev, чтобы предотвратить его пересечение файловых систем. На моей виртуальной машине с одной корневой файловой системой, но монтирующей для моих дисков C и D, я сократил время с двух минут до семнадцати секунд.

Конечно, это не относится к другим локальным файловым системам, но вы можете, при необходимости, написать скрипт для поиска (с xdev) файла во всех файловых системах, помеченных ext4 ( и любые другие, которые вы считаете местными).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...