Я встречался с этой ошибкой несколько раз, и вот путь, как я зафиксировал его:
/ bin / ls
обычно сортирует вывод. Я не уверен, что ваш «эффективный» вопрос касается только системных вызовов или всей проделанной работы, но / bin / ls -f
, вероятно, сработает меньше всего. Он возвращает только имена файлов в порядке каталогов. Никакой сортировки, никаких дополнительных поисков inode для получения метаданных (как ls -l
).
Кроме того, если по умолчанию ls
используется раскрашивание, он может в любом случае выполнять эквивалент ls -l
, чтобы указать, как раскрасить вывод.
ls -l
определенно дороже, так как ему приходится запрашивать в файловой системе такие метаданные, как владелец, группа, разрешения, время доступа и т.д. Ваниль /bin/ls
должен искать только имена записей в каталоге, который находится в списке.
Обратите внимание, что ls
может иметь в вашей системе псевдонимы менее ванильные, чем /бин/ls
. Запустите тип ls
, чтобы проверить, так ли это.