1

Моя файловая система Linux содержит десятки тысяч файлов в каталоге. Для просмотра списка всех файлов моей системе требуется несколько минут, что слишком медленно. Но я не уверен, какие файлы находятся в каждом каталоге, поэтому хочу просмотреть список первых нескольких, например, что команда head делает для больших файлов. Есть ли команда, которая эффективно это делает?

Редактировать: передача ls во что-то другое не годится, потому что ls требуется несколько минут, чтобы завершить вывод результатов. Мне нужна команда, которая будет возвращать только первые несколько записей.

5 ответов5

3

Попробуйте ls -f который не сортирует.

0

Для каждого из каталогов вы можете сделать следующее с помощью сценария оболочки

Попробуйте это, это дает одну страницу, полную записей

ls | more

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

ls | more > filenames.txt

Спасибо

0

Если вы хотите перечислить N первых записей, я бы просто создал небольшую программу на C, которая выполняет вызов opendir, а затем N вызывает readdir

0

Это зависит от файловой системы, но обычно быстрее перечислить только имена файлов (посмотрите на объект каталога) в сравнении со всеми метаданными файла (сохраняет один stat () для файла).

Вы пробовали ls -R?

В противном случае вам может потребоваться периодически запускать программу поиска GNU в фоновом режиме и использовать сгенерированную БД для ее отслеживания.

0

Вы можете использовать head:

ls -l | head

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .