Поиск по сайту:

Как найти и отсортировать файлы по дате и времени изменения в Linux


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

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

Здесь проявляется настоящая красота Linux, поскольку в Linux есть набор команд, которые при использовании по отдельности или вместе могут помочь найти файл или отсортировать набор файлов по их имени, дате изменения, времени создания или даже любому другому имени. фильтр, который вы могли бы применить, чтобы получить результат.

Здесь мы раскроем реальную силу Linux, рассмотрев набор команд, которые могут помочь отсортировать файл или даже список файлов по дате и времени.

Утилиты Linux для сортировки файлов в Linux

Вот некоторые базовые утилиты командной строки Linux, которых достаточно для сортировки каталога по дате и времени:

команда ls

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

Мы уже рассмотрели множество статей о команде ls и sort в Linux, вы можете найти их ниже:

  1. Изучите команду ls на 15 базовых примерах
  2. Изучите 7 дополнительных команд ls с примерами
  3. 15 полезных вопросов на собеседовании по команде ls в Linux

команда сортировки

sort – эту команду можно использовать для сортировки результатов любого поиска по любому полю или любому конкретному столбцу поля.

Мы уже рассмотрели две статьи о команде sort в Linux, вы можете найти их ниже:

  1. 14 примеров команд сортировки в Linux – часть 1
  2. 7 полезных примеров команды sort в Linux – часть 2

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

Некоторые способы сортировки файлов по дате и времени

Ниже приведен список команд для сортировки по дате и времени.

1. Список файлов на основе времени изменения

Приведенная ниже команда выводит список файлов в формате длинного списка и сортирует файлы по времени модификации, сначала самые новые. Для сортировки в обратном порядке используйте переключатель '-r' с этой командой.

# 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. Список файлов на основе времени последнего доступа

Список файлов в каталоге на основе времени последнего доступа, т.е. на основе времени последнего доступа к файлу, а не его изменения.

# 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. Список файлов на основе времени последнего изменения

Список файлов в каталоге на основе времени последнего изменения информации о состоянии файла или 'ctime'. Эта команда сначала выведет список того файла, информация о статусе которого, такая как владелец, группа, разрешения, размер и т. д., была недавно изменена.

# 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
...

Если переключатель '-a' используется с приведенными выше командами, они могут отображать и сортировать даже скрытые файлы в текущем каталоге, а переключатель '-r' отображает вывод в обратном порядке. заказ.

Для более глубокой сортировки, например сортировки по Output команды find, однако можно также использовать ls, но там sort ' оказывается более полезным, поскольку выходные данные могут содержать не только имя файла, но и любые поля, необходимые пользователю.

Ниже показано использование команды 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' на основе 6-го поля месяца, а затем на основе 7-го поля, которое является датой, в числовом виде.

# 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, вы можете отсортировать практически любой список на основе любого поля и даже любого столбца, который вам нужен. Это были некоторые приемы, которые помогут вам сортировать файлы по дате или времени. На основе этих трюков вы можете построить свои собственные трюки. Однако, если у вас есть еще какой-нибудь интересный трюк, вы всегда можете упомянуть его в комментариях.