Моя файловая система Linux имеет десятки тысяч файлов на каталог. Просмотр списка всех файлов занимает несколько минут для моей системы для вычисления, который является слишком медленным. Но я не уверен, какие файлы находятся в каждом каталоге так хотят просмотреть список нескольких первых, как то, что главная команда делает для больших файлов. Существует ли команда, которая эффективно делает это?
Править: Передача по каналу ls к чему-то еще бесполезна, потому что ls занимает несколько минут, чтобы завершиться, прежде, чем передать вывод по каналу. Мне нужна команда, которая только возвратит первые несколько записей.
Для каждого из каталогов можно сделать следующее сценарием оболочки
Попробуйте это, это дает одну страницу, полную записей
ls | more
Можно даже продвинуть это в некоторый файл, если Вы хотите так, чтобы можно было обратиться к нему позже для того использования это
ls | more > filenames.txt
Спасибо
Если бы Вы хотите перечислить N первые записи, я просто создал бы маленькую программу C, которая делает вызов opendir, и затем N звонит в readdir
Это зависит от файловой системы, но это обычно более быстро для списка имен файлов только (посмотрите на объект каталога) по сравнению со всеми метаданными файла (сохраняет одну статистику () на файл).
Вы попробовали ls -R
?
Иначе это могло бы заплатить, Вы для выполнения GNU определяете местоположение программы в фоновом режиме периодически и используете сгенерированный DB для отслеживания его.
Можно использовать head
:
ls -l | head