Wyszukiwanie w witrynie

Jak znaleźć i sortować pliki na podstawie daty i godziny modyfikacji w systemie Linux


Zwykle mamy zwyczaj zapisywania wielu informacji w postaci plików w naszym systemie. Niektóre ukryte pliki, niektóre przechowywane w osobnym folderze stworzonym dla naszej łatwości zrozumienia, a niektóre takie jakie są. Ale cała ta sprawa wypełnia nasze katalogi; zwykle na pulpicie, przez co wygląda jak bałagan. Problem pojawia się jednak, gdy w tej ogromnej kolekcji musimy wyszukać konkretny plik zmodyfikowany o określonej dacie i godzinie.

Osoby zaznajomione z graficznym interfejsem użytkownika mogą go znaleźć za pomocą Menedżera plików, który wyświetla listę plików w formacie długiej listy, co ułatwia zorientowanie się, czego szukamy, ale użytkownicy mający zwyczaj wyświetlania czarnych ekranów, a nawet wszyscy pracujący na serwerach pozbawionych GUI, mogliby to zrobić potrzebujesz prostego polecenia lub zestawu poleceń, które mogłyby ułatwić wyszukiwanie.

Tutaj pokazuje się prawdziwe piękno Linuksa, ponieważ Linux posiada zbiór poleceń, które użyte osobno lub razem mogą pomóc w wyszukiwaniu pliku lub sortowaniu zbioru plików według ich nazwy, daty modyfikacji, czasu utworzenia, a nawet dowolnego filtr, który możesz zastosować, aby uzyskać wynik.

Tutaj odkryjemy prawdziwą siłę Linuksa, badając zestaw poleceń, które mogą pomóc w sortowaniu pliku lub nawet listy plików według Daty i Godziny.

Narzędzia Linux do sortowania plików w systemie Linux

Oto niektóre podstawowe narzędzia wiersza poleceń Linuksa, które wystarczą do sortowania katalogów na podstawie Daty i Czasu:

polecenie

ls – Wyświetla zawartość katalogu. To narzędzie może wyświetlić listę plików i katalogów, a nawet wyświetlić listę wszystkich informacji o ich statusie, w tym: datę i godzinę modyfikacji lub dostępu, uprawnienia, rozmiar, właściciela, grupę itp. .

Omówiliśmy już wiele artykułów na temat polecenie ls i polecenie sort w systemie Linux. Znajdziesz je poniżej:

  1. Naucz się polecenia ls z 15 podstawowymi przykładami
  2. Naucz się 7 poleceń Advance ls z przykładami
  3. 15 przydatnych pytań do wywiadu na temat polecenia ls w systemie Linux

polecenie sortowania

sort – tego polecenia można użyć do sortowania wyników dowolnego wyszukiwania według dowolnego pola lub dowolnej kolumny pola.

Omówiliśmy już dwa artykuły na temat polecenie sort w systemie Linux. Znajdziesz je poniżej:

  1. 14 Przykłady poleceń „sort” w systemie Linux – część 1
  2. 7 Przydatnych przykładów poleceń „sort” w systemie Linux – część 2

Polecenia te same w sobie są bardzo potężnymi poleceniami, które należy opanować, jeśli pracujesz na czarnych ekranach i musisz radzić sobie z wieloma plikami, aby uzyskać ten, który chcesz.

Niektóre sposoby sortowania plików według daty i godziny

Poniżej znajduje się lista poleceń do sortowania według daty i godziny.

1. Wyświetl listę plików na podstawie czasu modyfikacji

Poniższe polecenie wyświetla listę plików w formacie długiej listy i sortuje pliki na podstawie czasu modyfikacji, zaczynając od najnowszych. Aby sortować w odwrotnej kolejności, użyj przełącznika '-r' w tym poleceniu.

# 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. Wyświetl listę plików na podstawie czasu ostatniego dostępu

Lista plików w katalogu na podstawie czasu ostatniego dostępu, tj. na podstawie czasu ostatniego dostępu do pliku, a nie modyfikacji.

# 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. Wyświetl listę plików na podstawie czasu ostatniej modyfikacji

Lista plików w katalogu na podstawie czasu ostatniej modyfikacji informacji o statusie pliku lub 'ctime'. To polecenie wyświetli najpierw listę tego pliku, którego wszelkie informacje o statusie, takie jak: właściciel, grupa, uprawnienia, rozmiar itp., zostały niedawno zmienione.

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

Jeśli z powyższymi poleceniami zostanie użyty przełącznik '-a', mogą one wyświetlić i posortować nawet ukryte pliki w bieżącym katalogu, a przełącznik '-r' wyświetli wynik w odwrotnej kolejności zamówienie.

W przypadku bardziej szczegółowego sortowania, na przykład sortowania według wyjścia polecenia find, można jednak również użyć ls, ale tam jest 'sort ' okazuje się bardziej pomocny, ponieważ dane wyjściowe mogą zawierać nie tylko nazwę pliku, ale dowolne pola wymagane przez użytkownika.

Poniższe polecenia pokazują użycie sort z poleceniem find do sortowania listy plików na podstawie Daty i Czasu.

Aby dowiedzieć się więcej o poleceniu find, kliknij ten link: 35 praktycznych przykładów polecenia „find” w systemie Linux

4. Sortowanie plików według miesiąca

Tutaj używamy polecenia find, aby znaleźć wszystkie pliki w katalogu głównym ('/'), a następnie wypisać wynik jako: Miesiąc, w którym pliku uzyskano dostęp, a następnie nazwa pliku. Z tego pełnego wyniku podajemy listę 11 najlepszych wpisów.

# 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

Poniższe polecenie sortuje dane wyjściowe przy użyciu klucza jako pierwszego pola określonego przez '-k1', a następnie sortuje według miesiąca określonego przez 'M' przed nim.

# 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. Sortuj pliki według daty

Tutaj ponownie używamy polecenia find, aby znaleźć wszystkie pliki w katalogu głównym, ale teraz wydrukujemy wynik jako: ostatnia data dostępu do pliku, ostatni godzina dostępu do pliku, a następnie nazwa pliku. Z tego wybieramy 11 najlepszych wpisów.

# 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

Poniższe polecenie sortowania najpierw sortuje na podstawie ostatniej cyfry roku, następnie sortuje na podstawie ostatniej cyfry miesiąca w odwrotnej kolejności, a na koniec sortuje na podstawie pierwszego pola. Tutaj „1.8” oznacza ósmą kolumnę pierwszego pola, a „n” przed nią oznacza sortowanie numeryczne, natomiast „r” oznacza odwrotną kolejność sortowanie.

# 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. Sortowanie plików według czasu

Tutaj ponownie używamy polecenia find, aby wyświetlić listę 11 najważniejszych plików w katalogu głównym i wydrukować wynik w formacie: czas ostatniego dostępu do pliku, a następnie nazwa pliku.

# 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

Poniższe polecenie sortuje dane wyjściowe na podstawie pierwszej kolumny pierwszego pola wyniku, którym jest pierwsza cyfra godziny.

# 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. Sortowanie wyniku ls -l na podstawie daty

To polecenie sortuje dane wyjściowe polecenia 'ls -l' w oparciu o 6. pole w ujęciu miesięcznym, a następnie w oparciu o 7. pole, którym jest data, liczbowo.

# 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

Wniosek

Podobnie, mając pewną wiedzę na temat polecenia sort, możesz sortować prawie każdą listę na podstawie dowolnego pola, a nawet dowolnej kolumny. Oto niektóre ze sztuczek, które pomogą Ci sortować pliki na podstawie daty lub godziny. Na ich podstawie możesz tworzyć własne triki. Jeśli jednak masz jakiś inny ciekawy trik, zawsze możesz wspomnieć o tym w swoich komentarzach.