У меня есть каталог: /home/user/
Как я могу перечислить все файлы в этом каталоге (включая файлы в подкаталогах) и упорядочить их по дате их последнего изменения?
У меня есть каталог: /home/user/
Как я могу перечислить все файлы в этом каталоге (включая файлы в подкаталогах) и упорядочить их по дате их последнего изменения?
Вы можете использовать:
$ ls -Rt
где -R
означает рекурсивный (включая подкаталоги), а -t
означает "сортировка по дате последнего изменения".
Чтобы просмотреть список файлов, отсортированных по дате изменения, используйте:
$ ls -l -Rt
Для этого также можно создать псевдоним:
alias ll='ls -l'; ll -Rt
Если вам нужен основной список, в котором все файлы отсортированы вместе по дате изменения, показывая каталог, в котором они находятся, но не сгруппированы по каталогу, вы можете использовать это:
find . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' '
Результат очень похож на ls -l
:
-rw-r--r-- 1 root root 3892 08/11/2009 11:03:36 /usr/share/man/man1/xmllint.1.gz -rw-r--r-- 1 root root 22946 08/13/2009 11:59:20 /usr/share/man/man1/curl.1.gz -rw-r--r-- 1 root root 728 08/17/2009 12:06:33 /usr/share/man/man1/thunderbird.1.gz -rw-r--r-- 1 root root 873 08/18/2009 10:52:47 /usr/share/man/man1/libgnutls-config.1.gz -rw-r--r-- 1 root root 2552 08/19/2009 02:00:34 /usr/share/man/man3/Purple.3pm.gz -rw-r--r-- 1 root root 9546 08/19/2009 02:02:00 /usr/share/man/man1/pidgin.1.gz -rw-r--r-- 1 root root 2201 08/19/2009 02:02:46 /usr/share/man/man3/Pidgin.3pm.gz -rw-r--r-- 1 root root 926 08/19/2009 02:03:05 /usr/share/man/man1/purple-remote.1.gz -rw-r--r-- 1 root root 18052 08/19/2009 04:11:47 /usr/share/man/man1/mono.1.gz -rw-r--r-- 1 root root 1845 08/19/2009 04:11:47 /usr/share/man/man5/mono-config.5.gz
Для тех, кто использует Mac OS X, опция -printf недоступна в поиске BSD (вы получите эту ошибку: find: -printf: unknown primary or operator
). К счастью, вы можете установить поиск GNU через Homebrew (должна быть опция Fink и Macports):
brew install findutils
После установки, поиск GNU должен быть доступен вам как gfind
. Итак, все, что вам нужно сделать, это изменить строку выше:
gfind . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' '
MAC OSX 2019
Если вам неважно, во сколько он был создан, но вы хотите, чтобы ваш список был отсортирован, используйте эту команду
==> ls -t
Если вы хотите заказать и увидеть дату и информацию о пользователе, используйте эту команду
===> ls -lt