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

Люди, привыкшие к графическому интерфейсу, могут найти его, используя файловый менеджер, который отображает файлы в длинном формате списка, что упрощает понимание того, что мы искали, но те пользователи, которые привыкли к черным экранам, или даже те, кто работает на серверах без графического интерфейса, захотели бы простую команду или набор команд, которые могли бы облегчить их поиск.
Здесь показывается настоящая красота Linux, поскольку у Linux есть набор команд, которые, если использовать их по отдельности или вместе, могут помочь найти файл или отсортировать коллекцию файлов по их имени, дате изменения, времени создания или даже любому другому фильтру, который вы могли бы придумать, чтобы получить результат.
Здесь мы раскроем настоящую силу Linux, изучив набор команд, которые могут помочь сортировать файл или даже список файлов по дате и времени.
Утилиты Linux для сортировки файлов в Linux
Некоторые основные утилиты командной строки Linux, которые вполне достаточны для сортировки каталога по дате и времени, включают:
команда ls
ls – Список содержимого каталога, данное утилита может выводить файлы и каталоги и может быть даже вывести все информацию о них, включая: дату и время изменения или доступа, разрешения, размер, владельца, группу и т. д.
Мы уже рассмотрели множество статей о Linux команде ls и команде sort, вы можете найти их ниже:
- Учите команду ls с 15 базовыми примерами
- Учите 7 продвинутых команд ls с примерами
- 15 полезных интервью вопросов о команде ls в Linux
команда sort
sort – Эта команда может использоваться для сортировки вывода любого поиска просто по любому полю или конкретному столбцу поля.
Мы уже рассмотрели две статьи о Linux команде sort, вы можете найти их ниже:
Данные команды сами по себе являются очень мощными, если вы работаете на черных экранах и должны иметь дело с множеством файлов, чтобы найти нужный.
Как отсортировать файлы по дате и времени
Below are the list of commands to sort based on Date and Time.
1. List Files Based on Modification Time
The below command lists files in long listing format, and sorts files based on modification time, newest first. To sort in reverse order, use '-r'
switch with this command.
# ls -lt total 673768 -rwxr----- 1 tecmint tecmint 3312130 Jan 19 15:24 When You Are Gone.MP3 -rwxr----- 1 tecmint tecmint 4177212 Jan 19 15:24 When I Dream At Night - Marc Anthony-1.mp3 -rwxr----- 1 tecmint tecmint 4177212 Jan 19 15:24 When I Dream At Night - Marc Anthony.mp3 -rwxr----- 1 tecmint tecmint 6629090 Jan 19 15:24 Westlife_Tonight.MP3 -rwxr----- 1 tecmint tecmint 3448832 Jan 19 15:24 We Are The World by USA For Africa (Michael Jackson).mp3 -rwxr----- 1 tecmint tecmint 8580934 Jan 19 15:24 This Love.mp3 -rwxr----- 1 tecmint tecmint 2194832 Jan 19 15:24 The Cross Of Changes.mp3 -rwxr----- 1 tecmint tecmint 5087527 Jan 19 15:24 T.N.T. For The Brain 5.18.mp3 -rwxr----- 1 tecmint tecmint 3437100 Jan 19 15:24 Summer Of '69.MP3 -rwxr----- 1 tecmint tecmint 4360278 Jan 19 15:24 Smell Of Desire.4.32.mp3 -rwxr----- 1 tecmint tecmint 4582632 Jan 19 15:24 Silence Must Be Heard 4.46.mp3 -rwxr----- 1 tecmint tecmint 4147119 Jan 19 15:24 Shadows In Silence 4.19.mp3 -rwxr----- 1 tecmint tecmint 4189654 Jan 19 15:24 Sarah Brightman & Enigma - Eden (remix).mp3 -rwxr----- 1 tecmint tecmint 4124421 Jan 19 15:24 Sade - Smooth Operator.mp3 -rwxr----- 1 tecmint tecmint 4771840 Jan 19 15:24 Sade - And I Miss You.mp3 -rwxr----- 1 tecmint tecmint 3749477 Jan 19 15:24 Run To You.MP3 -rwxr----- 1 tecmint tecmint 7573679 Jan 19 15:24 Roger Sanchez_Another Chance_Full_Mix.mp3 -rwxr----- 1 tecmint tecmint 3018211 Jan 19 15:24 Principal Of Lust.3.08.mp3 -rwxr----- 1 tecmint tecmint 5688390 Jan 19 15:24 Please Forgive Me.MP3 -rwxr----- 1 tecmint tecmint 3381827 Jan 19 15:24 Obvious.mp3 -rwxr----- 1 tecmint tecmint 5499073 Jan 19 15:24 Namstey-London-Viraaniya.mp3 -rwxr----- 1 tecmint tecmint 3129210 Jan 19 15:24 MOS-Enya - Only Time (Pop Radio mix).m
2. List Files Based on Last Access Time
Listing of files in directory based on last access time, i.e. based on time the file was last accessed, not modified.
# ls -ltu total 3084272 drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:24 Music drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:22 Linux-ISO drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:22 Music-Player drwx------ 3 tecmint tecmint 4096 Jan 19 15:22 tor-browser_en-US drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:22 bin drwxr-xr-x 11 tecmint tecmint 4096 Jan 19 15:22 Android Games drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:22 Songs drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:22 renamefiles drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:22 katoolin-master drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:22 Tricks drwxr-xr-x 3 tecmint tecmint 4096 Jan 19 15:22 Linux-Tricks drwxr-xr-x 6 tecmint tecmint 4096 Jan 19 15:22 tuptime drwxr-xr-x 4 tecmint tecmint 4096 Jan 19 15:22 xdm drwxr-xr-x 2 tecmint tecmint 20480 Jan 19 15:22 ffmpeg usage drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:22 xdm-helper
3. List Files Based on Last Modification Time
Listing of files in directory based on last modification time of file’s status information, or the 'ctime'
. This command would list that file first whose any status information like: owner, group, permissions, size etc has been recently changed.
# ls -ltc total 3084272 drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 15:24 Music drwxr-xr-x 2 tecmint tecmint 4096 Jan 19 13:05 img -rw------- 1 tecmint tecmint 262191 Jan 19 12:15 tecmint.jpeg drwxr-xr-x 5 tecmint tecmint 4096 Jan 19 10:57 Desktop drwxr-xr-x 7 tecmint tecmint 12288 Jan 18 16:00 Downloads drwxr-xr-x 13 tecmint tecmint 4096 Jan 18 15:36 VirtualBox VMs -rwxr-xr-x 1 tecmint tecmint 691 Jan 13 14:57 special.sh -rw-r--r-- 1 tecmint tecmint 654325 Jan 4 16:55 powertop-2.7.tar.gz.save -rw-r--r-- 1 tecmint tecmint 654329 Jan 4 11:17 filename.tar.gz drwxr-xr-x 3 tecmint tecmint 4096 Jan 4 11:04 powertop-2.7 -rw-r--r-- 1 tecmint tecmint 447795 Dec 31 14:22 Happy-New-Year-2016.jpg -rw-r--r-- 1 tecmint tecmint 12 Dec 18 18:46 ravi -rw-r--r-- 1 tecmint tecmint 1823 Dec 16 12:45 setuid.txt ...
If '-a'
switch is used with above commands, they can list and sort even the hidden files in current directory, and '-r'
switch lists the output in reverse order.
For more in-depth sorting, like sorting on Output of find command, however ls
can also be used, but there 'sort'
proves more helpful as the output may not have only file name but any fields desired by user.
Нижеприведенные команды показывают использование команды sort
с командой find
для сортировки списка файлов по дате и времени.
Чтобы узнать больше о команде find, перейдите по ссылке: 35 практических примеров использования команды ‘find’ в Linux
4. Сортировка файлов по месяцу
Здесь мы используем команду find
для поиска всех файлов в корневом каталоге (‘/’)
и затем выводим результат в виде: месяц, в котором был доступен файл, а затем имя файла. Из этого полного результата мы перечисляем первые 11 записей.
# find / -type f -printf "\n%Ab %p" | head -n 11 Dec /usr/lib/nvidia/pre-install Dec /usr/lib/libcpufreq.so.0.0.0 Apr /usr/lib/libchromeXvMCPro.so.1.0.0 Apr /usr/lib/libt1.so.5.1.2 Apr /usr/lib/libchromeXvMC.so.1.0.0 Apr /usr/lib/libcdr-0.0.so.0.0.15 Dec /usr/lib/msttcorefonts/update-ms-fonts Nov /usr/lib/ldscripts/elf32_x86_64.xr Nov /usr/lib/ldscripts/elf_i386.xbn Nov /usr/lib/ldscripts/i386linux.xn
Нижеприведенная команда сортирует вывод, используя ключ в качестве первого поля, указанного как '-k1'
, а затем сортирует по месяцу, указанному как 'M'
перед ним.
# find / -type f -printf "\n%Ab %p" | head -n 11 | sort -k1M Apr /usr/lib/libcdr-0.0.so.0.0.15 Apr /usr/lib/libchromeXvMCPro.so.1.0.0 Apr /usr/lib/libchromeXvMC.so.1.0.0 Apr /usr/lib/libt1.so.5.1.2 Nov /usr/lib/ldscripts/elf32_x86_64.xr Nov /usr/lib/ldscripts/elf_i386.xbn Nov /usr/lib/ldscripts/i386linux.xn Dec /usr/lib/libcpufreq.so.0.0.0 Dec /usr/lib/msttcorefonts/update-ms-fonts Dec /usr/lib/nvidia/pre-install
5. Сортировка файлов по дате
Здесь снова мы используем команду find
для поиска всех файлов в корневом каталоге, но теперь мы выводим результат в виде: последняя дата, когда был доступен файл, последнее время, когда был доступен файл, а затем имя файла. Из этого мы выбираем первые 11 записей.
# find / -type f -printf "\n%AD %AT %p" | head -n 11 12/08/15 11:30:38.0000000000 /usr/lib/nvidia/pre-install 12/07/15 10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0 04/11/15 06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0 04/11/15 06:08:34.9939910430 /usr/lib/libt1.so.5.1.2 04/11/15 06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0 04/11/15 06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15 12/18/15 11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts 11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr 11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn 11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn
Нижеприведенная команда сортирует сначала по основе последней цифры года, затем сортирует по основе последней цифры месяца в обратном порядке, и, наконец, сортирует по основе первого поля. Здесь ‘1.8’ означает 8-й столбец первого поля, а ‘n’ перед ним означает числовую сортировку, а ‘r’ указывает сортировку в обратном порядке.
# find / -type f -printf "\n%AD %AT %p" | head -n 11 | sort -k1.8n -k1.1nr -k1 12/07/15 10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0 12/08/15 11:30:38.0000000000 /usr/lib/nvidia/pre-install 12/18/15 11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts 11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr 11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn 11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn 04/11/15 06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0 04/11/15 06:08:34.9939910430 /usr/lib/libt1.so.5.1.2 04/11/15 06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15 04/11/15 06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0
6. Сортировка файлов по времени
Здесь мы снова используем команду find
для вывода списка 11 верхних файлов в корневом каталоге и печати результата в формате: последнее время доступа к файлу, а затем имя файла.
# find / -type f -printf "\n%AT %p" | head -n 11 11:30:38.0000000000 /usr/lib/nvidia/pre-install 10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0 06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0 06:08:34.9939910430 /usr/lib/libt1.so.5.1.2 06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0 06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15 11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts 12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr 12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn 12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn
Ниже приведена команда, сортирующая вывод на основе первого столбца первого поля вывода, который представляет собой первую цифру часа.
# find / -type f -printf "\n%AT %p" | head -n 11 | sort -k1.1n 06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0 06:08:34.9939910430 /usr/lib/libt1.so.5.1.2 06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15 06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0 10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0 11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts 11:30:38.0000000000 /usr/lib/nvidia/pre-install 12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr 12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn 12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn
7. Сортировка вывода ls -l на основе даты
Эта команда сортирует вывод команды 'ls -l'
по месяцам в шестом поле, а затем по дате в седьмом поле, численно.
# ls -l | sort -k6M -k7n total 116 -rw-r--r-- 1 root root 0 Oct 1 19:51 backup.tgz drwxr-xr-x 2 root root 4096 Oct 7 15:27 Desktop -rw-r--r-- 1 root root 15853 Oct 7 15:19 powertop_report.csv -rw-r--r-- 1 root root 79112 Oct 7 15:25 powertop.html -rw-r--r-- 1 root root 0 Oct 16 15:26 file3 -rw-r--r-- 1 root root 13 Oct 16 15:17 B -rw-r--r-- 1 root root 21 Oct 16 15:16 A -rw-r--r-- 1 root root 64 Oct 16 15:38 C
Заключение
Таким образом, имея некоторое представление о команде sort, вы можете сортировать практически любой список на основе любого поля и даже любого столбца. Это были некоторые приемы, помогающие вам сортировать файлы по дате или времени. Вы можете создавать свои собственные приемы на основе этих. Однако, если у вас есть какой-либо другой интересный трюк, вы всегда можете упомянуть его в своих комментариях.
Source:
https://www.tecmint.com/find-and-sort-files-modification-date-and-time-in-linux/