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:
- 15 Temel Örnekle ls Komutunu Öğrenin
- Örneklerle 7 İleri Seviye Komutu Öğrenin
- 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:
- 14 Linux 'sıralama' Komut Örnekleri – Bölüm 1
- 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.