Сортировка команды linux по дате

3647
mcaleaa

Команда linux locate отлично подходит для быстрого поиска файлов.

Мой вопрос: как мы можем использовать команду locate, чтобы результаты возвращались в порядке даты / времени?

4

2 ответа на вопрос

5
onionjake

Это работает до тех пор, пока в именах файлов нет пробелов, а есть ошибки, если файлов слишком много (см. Http://www.gnu.org/software/coreutils/faq/#Argument-list-too-long ):

$ ls -td $(locate sh) bash: /bin/ls: Argument list too long 

Это будет работать даже с пробелами или другими символами в именах файлов, но неправильно сортируется со слишком большим количеством файлов:

locate something -0 | xargs -0 ls -ltd 

Следующее всегда будет работать (хотя это может занять некоторое время):

locate something -0 | xargs -0 stat -c'%Y %n' | sort -n 
Для меня передача в "stat" была в десять раз быстрее, чем в "ls", хотя, очевидно, она не показывает всю информацию "ls -l". Sparhawk 7 лет назад 0
2
RedGrittyBrick

Как насчет:

ls -td $(locate something) 

или же

ls -td1 $(locate something) 
Может быть, `-d` тоже подойдет. choroba 11 лет назад 0
@choroba: хороший момент, я обновлю ответ. RedGrittyBrick 11 лет назад 0
Это не работает для файлов с пробелами в их имени. Sparhawk 7 лет назад 0

Похожие вопросы