Linux'ta Değişiklik Tarihi ve Saatine Göre Dosyaları Bulma ve Sıralama


Genellikle pek çok bilgiyi dosya halinde sistemimize kaydetme alışkanlığımız vardır. Bazıları gizli dosyalar, bazıları anlama kolaylığı için oluşturulmuş ayrı bir klasörde tutulurken, bazıları olduğu gibi. Ama bütün bunlar rehberlerimizi dolduruyor; genellikle masaüstü, dağınıklık gibi görünmesine neden oluyor. Ancak sorun, bu devasa koleksiyonda belirli bir tarih ve saatte değiştirilmiş belirli bir dosyayı aramamız gerektiğinde ortaya çıkıyor.

GUI'lerle arası iyi olan kişiler, dosyaları uzun liste formatında listeleyen Dosya Yöneticisi'ni kullanarak bunu bulabilir, bu da ne istediğimizi anlamamızı kolaylaştırır, ancak siyah ekran alışkanlığı olan kullanıcılar ve hatta GUI'den yoksun sunucular üzerinde çalışan herkes bunu yapabilir. Aramalarını kolaylaştıracak basit bir komut veya komut dizisi istiyorlar.

Linux'un gerçek güzelliği burada ortaya çıkıyor, çünkü Linux ayrı ayrı veya birlikte kullanıldığında bir dosyayı aramaya veya bir dosya koleksiyonunu adlarına, değiştirilme tarihine, oluşturulma zamanına ve hatta herhangi bir şeye göre sıralamaya yardımcı olabilecek bir komut koleksiyonuna sahiptir. Sonucunuzu almak için uygulamayı düşünebileceğiniz filtre.

Burada, bir dosyayı, hatta bir dosya listesini Tarih ve Saat'e göre sıralamaya yardımcı olabilecek bir dizi komutu inceleyerek Linux'un gerçek gücünü ortaya çıkaracağız.

Linux'ta Dosyaları Sıralamak için Linux Yardımcı Programları

Bir dizini Tarih ve Saat'e göre sıralamak için yeterli olan bazı temel Linux komut satırı yardımcı programları şunlardır:

ls komutu

ls – Dizinin içeriğini listeleyen bu yardımcı program, dosyaları ve dizinleri listeleyebilir ve hatta bunlarla ilgili tüm durum bilgilerini de listeleyebilir: değişiklik veya erişim tarihi ve saati, izinler, boyut, sahip, grup vb. .

Linux ls komutu ve sort komutu ile ilgili birçok makaleyi zaten ele aldık; bunları aşağıda bulabilirsiniz:

  1. 15 Temel Örnekle ls Komutunu Öğrenin
  2. Örneklerle 7 İleri Seviye Komutu Öğrenin
  3. Linux'ta ls Komutu Hakkında 15 Faydalı Röportaj Sorusu

sıralama komutu

sırala – Bu komut, herhangi bir aramanın çıktısını yalnızca herhangi bir alana veya alanın belirli bir sütununa göre sıralamak için kullanılabilir.

Linux sort komutu hakkında zaten iki makale ele aldık; bunları aşağıda bulabilirsiniz:

  1. 14 Linux 'sıralama' Komut Örnekleri – Bölüm 1
  2. 7 Faydalı Linux 'sıralama' Komut Örnekleri – Bölüm 2

Bu komutlar, siyah ekranlarda çalışıyorsanız ve sırf istediğinizi elde etmek için çok sayıda dosyayla uğraşmak zorundaysanız, ustalaşmanız gereken çok güçlü komutlardır.

Tarih ve Saati Kullanarak Dosyaları Sıralamanın Bazı Yolları

Aşağıda Tarih ve Saate göre sıralanacak komutların listesi bulunmaktadır.

1. Dosyaları Değişiklik Zamanına Göre Listeleyin

Aşağıdaki komut, dosyaları uzun liste formatında listeler ve dosyaları değiştirilme zamanına göre en yenisi önce gelecek şekilde sıralar. Ters sırada sıralamak için bu komutla '-r' anahtarını kullanın.

# 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. Dosyaları Son Erişim Zamanına Göre Listeleyin

Dizindeki dosyaların son erişim zamanına göre listelenmesi, yani dosyaya en son erişilme zamanına (değiştirilmeye değil) göre.

# 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. Dosyaları Son Değişiklik Zamanına Göre Listeleyin

Dosya durum bilgilerinin son değiştirilme zamanına veya 'ctime''a göre dizindeki dosyaların listelenmesi. Bu komut, ilk önce sahip, grup, izinler, boyut vb. gibi durum bilgileri yakın zamanda değiştirilmiş olan dosyayı listeler.

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

Yukarıdaki komutlarla '-a' anahtarı kullanılırsa, geçerli dizindeki gizli dosyaları bile listeleyebilir ve sıralayabilirler ve '-r' anahtarı çıktıyı tersten listeler emir.

Bul komutunun Çıktı'sına göre sıralama gibi daha ayrıntılı sıralama için, ancak ls de kullanılabilir, ancak 'sort da vardır ', çıktının yalnızca dosya adını değil aynı zamanda kullanıcı tarafından istenen alanları da içerebileceğinden daha yararlı olur.

Aşağıdaki komutlar, dosyaların listesini Tarih ve Saat'e göre sıralamak için sort komutunun find komutuyla kullanımını gösterir.

Find komutu hakkında daha fazla bilgi edinmek için şu bağlantıyı izleyin: Linux'ta 'find' Komutunun 35 Pratik Örneği

4. Dosyaları Aya Göre Sıralama

Burada, kök ('/') dizinindeki tüm dosyaları bulmak için find komutunu kullanırız ve ardından sonucu şu şekilde yazdırırız: Ay hangi dosyada erişildi ve ardından dosya adı. Bu tam sonuçtan en iyi 11 girişi burada listeliyoruz.

# 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

Aşağıdaki komut, çıktıyı ilk alan olarak '-k1' ile belirtilen anahtarı kullanarak sıralar ve ardından kendisinden önce 'M' ile belirtilen Ay'a göre sıralar.

# 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. Dosyaları Tarihe Göre Sıralayın

Burada yine kök dizindeki tüm dosyaları bulmak için find komutunu kullanıyoruz, ancak şimdi sonucu şu şekilde yazdıracağız: Dosyaya son tarih erişildi, son dosyaya erişildiği zamanı ve ardından dosya adını girin. Bunlardan ilk 11 girişi çıkarıyoruz.

# 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

Aşağıdaki sıralama komutu önce yılın son rakamına göre sıralama yapar, sonra ayın son rakamına göre tersten sıralama yapar ve son olarak da ilk alana göre sıralama yapar. Burada '1,8' ilk alanın 8. sütunu anlamına gelir ve onun önündeki 'n' sayısal sıralama anlamına gelirken, 'r' ters sırayı belirtir sıralama.

# 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. Dosyaları Zamana Göre Sıralama

Burada yine kök dizindeki en iyi 11 dosyayı listelemek ve sonucu şu formatta yazdırmak için find komutunu kullanıyoruz: dosyaya en son erişildiği zaman ve ardından dosya adı.

# 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

Aşağıdaki komut, çıktının saatin ilk basamağı olan ilk alanının ilk sütununa göre çıktıyı sıralar.

# 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 Çıkışının Tarihe Göre Sıralanması

Bu komut 'ls -l' komutunun çıktısını önce ay bazında, ardından 7. alan olan tarih bazında sayısal olarak sıralar.

# 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

Çözüm

Benzer şekilde, sort komutu hakkında biraz bilgi sahibi olarak, hemen hemen her listeyi herhangi bir alana ve hatta istediğiniz herhangi bir sütuna göre sıralayabilirsiniz. Bunlar, dosyaları Tarih veya Saate göre sıralamanıza yardımcı olacak püf noktalarından bazılarıydı. Bunlara dayanarak kendi hilelerinizi oluşturabilirsiniz. Ancak başka ilginç bir numaranız varsa bunu yorumlarınızda her zaman belirtebilirsiniz.