У меня есть каталог: /home/user/
Как я могу перечислить все файлы в этом каталоге (включая файлы в подкаталогах) и отсортировать их по дате последнего изменения?
Ты можешь использовать:
ls -Rt
где -R
означает рекурсивный (включая подкаталоги) и -t
означает «сортировку по дате последнего изменения».
Чтобы просмотреть список файлов, отсортированных по дате изменения, используйте:
ls -l -Rt
Для этого также можно создать псевдоним:
alias lt='ls -lht'
lt
Где -h
дает более читаемый результат.
ls -lrt[RhA]
.-r
порядок сортировки меняется на обратный, оставляя недавно отредактированные материалы внизу списка ...-ila
дает вам практически всю информацию, которая вам может понадобиться.$ ls -ilaRt
ll -Rt
было для меня идеальным решением, поскольку мне нужно было видеть файлы по дате последнего изменения. Это может быть полезно другим.ll
не существует и не является командой. В основном это псевдоним в оболочке bash, но не определен в большинстве / some /? дистрибутивы linux. Некоторые определяют его какalias ll='ls -l'
/etc/bash.bashrc или /etc/.bashrc. Таким образом, он может не работать и может не существовать в системе OP. Используйте,ls -l -Rt
по крайней мере,ls
стандартную команду, определенную posix. Или укажите, что вы имели в видуalias ll='ls -l'; ll -Rt
.Если вам нужен главный список, в котором все файлы отсортированы по дате изменения, показывая каталог, в котором они находятся, но не сгруппированы по каталогам , вы можете использовать это:
Результат выглядит примерно так
ls -l
:Mac OS X
Для тех из вас, кто использует Mac OS X, опция -printf недоступна в поиске BSD (вы получите эту ошибку :)
find: -printf: unknown primary or operator
. К счастью, вы можете установить GNU find через Homebrew (также должна быть опция для Fink и Macports ):После его установки находка GNU должна быть доступна вам как
gfind
. Итак, все, что вам нужно сделать, это изменить строку выше на:источник
find
как автор, эти аргументы-printf
являются директивами формата, которые можно найти вman find
(найдите пятый экземплярprintf
на этой странице).find . -type f -print0 | xargs -0 stat -f "%m %Sp %l %-8Su %-8Sg %8z %Sm %N" | sort | cut -f 2- -d' '
даст вам примерно такой же результат в MacOS, используя только встроенные утилитыsort -r
, чтобы отменить сортировку и разместить наверху самые последние измененные файлы.MAC OSX 2019
Если вам все равно, в какое время он был создан, но вы хотите отсортировать список, используйте эту команду
==>
ls -t
Если вы хотите заказать и увидеть дату и информацию о пользователе, используйте эту команду
===>
ls -lt
источник
Для
zsh
пользователей вы также можете использовать квалификаторы glob (также задокументированныеman zshexpn
):Где
o
означает порядок сортировки, вверх иm
означает время последней модификации .Это может быть полезно при использовании в цикле for или другой команде:
Или связан с другим квалификатором глобуса:
источник