Örneklerle Linux FIND Komutu

Yeni bir Linux(Linux) kurulumunda kaç dosya olduğunu biliyor musunuz ? PopOS kullanıyorsanız! Örnek olarak Linux dağıtımı(Linux distribution) , 31.000'den fazla dosya var. Bu, herhangi bir belge oluşturmaya, müzik depolamaya, PDF'leri(PDFs) indirmeye veya resimleri düzenlemeye başlamadan öncedir.

Bu nedenle, ihtiyacınız olduğunda Linux'ta(Linux) doğru dosya veya klasörü bulmak bir zorluk haline gelir. Bu makalede, Linux FIND(Linux FIND) komutunu nasıl kullanacağınızı öğreneceksiniz ve size verebileceğimiz tüm örnekleri vereceğiz.

Linux FIND Komut Sözdizimi(Linux FIND Command Syntax)

Sözdizimi, kelimelerin veya komutların nasıl bir araya getirildiğini ifade eder. Normal bir cümle sadece(Just) sözcükleri karıştırarak anlamsız hale gelebileceği gibi, doğru sözdiziminde kullanılmadıkları takdirde komutlar da başarısız olabilir.

[yol] [koşullar] [eylemler] bul(find [path] [conditions] [actions])

Bunun anlamı şu:

bul - (find )Linux'ta (Linux)Bul(Find) yardımcı programını başlatır

yol(path ) - nereye bakmalı

koşullar(conditions ) – aramaya uygulamak istediğiniz argümanlar

eylemler(actions ) – sonuçlarla ne yapmak istiyorsunuz

Üçünü de kullanan basit bir örnek şuna benzer:

bulmak . -name dosya-örnek.rtf -yazdır(find . -name file-sample.rtf -print)

Tahmin ettiğiniz gibi bu, file-sample.rtf dosya adını bulacaktır . 

Nokta ( . ) yolu, find'in geçerli dizine ve içindeki herhangi bir dizine bakmasını söyler. 

-name koşulu , find'a bu belirli ada sahip dosyayı almasını söyler.

-print eylemi , BUL'a sonuçları ekranda göstermesini söyler.

Nokta ve -print, find komutu için varsayılan değerlerdir. Yani onları kullanmazsanız yine aynı şeyi yapacaktır. Yani, find -name file-sample.rtf size aynı sonuçları verecektir.

Başka Bir Dizinde Linux BUL(Linux FIND In Another Directory)

Bulunduğunuz dizinden(FIND) farklı bir dizinde arama yapabilirsiniz. FIND'den(Just) sonra dizine giden yolu eklemeniz yeterlidir . Kökteyseniz ve dosyanın home/user dizininde bir yerde olduğunu biliyorsanız, kullanırsınız:

find home/user -name file-sample.rtf

Hala özyinelemeli bir arama olduğundan, user(user) altındaki her dizinden geçecektir .

Linux FIND Birden Çok Dizinde Ara(Linux FIND Search Multiple Directories)

Aynı anda birkaç dizinde arama yapmak istiyorsanız, bunları komutta bir boşlukla ayırarak listeleyin.

find /lib /var /bin -name file-sample.rtf

Özyinelemesiz veya Sınırlı Özyinelemeli Linux FIND(Linux FIND with No Recursion or Limiting Recursion)

Yukarıdaki FIND komutunu root seviyesinde kullansaydınız, sistemdeki her dizine bakardı. Bu nedenle, yalnızca geçerli dizine bağlı kalmak istiyorsanız, -maxdepth seçeneğini kullanın. -maxdepth'ten sonraki sayı, Find'ı durmadan önce ne kadar derine gidileceğini söyler. 

-maxdepth 1'i(-maxdepth 1 ) kullanmak sadece bu dizin anlamına gelir. 

-name file-sample.rtf -maxdepth 1'i bulun(find -name file-sample.rtf -maxdepth 1)

-maxdepth 2 veya daha büyük bir sayı kullanmak , o kadar çok seviyeyi daha derine inmek anlamına gelir.

bul -maxdepth 5 -name dosya-sample.rtf(find -maxdepth 5 -name file-sample.rtf)

Linux FIND Joker Karakter Örneği(Linux FIND Wildcard Example)

FIND komutu, joker karakter olarak yıldız işaretini ( * ) *Emin olmadığınız adın herhangi bir kısmı için kullanın. İsimde birden fazla kullanılabilir. Dosya adının bir parçası olarak dosya türü olmadan, sonuçlar eşleşen dizinleri de içerecektir.

find home/user -name file*sample*

Türüne Göre Linux BUL Örneği(Linux FIND by Type Example)

Yalnızca bir dosya veya dizini aramak için -type seçeneğini ve uygun tanımlayıcıyı kullanın. Birkaç tane var, ancak dosya ve dizin olanlar en yaygın olanlardır:

f – dosya

d – dizin

b - cihazı bloke et

c – karakter aygıtı

l – sembolik bağ

s - soket

find home/user -name file*sample* -type d

Linux FIND Büyük/Küçük Harfe Duyarsız Örnek(Linux FIND Case Insensitive Example)

Windows'tan(Windows) farklı olarak Linux , bir harfin büyük mü yoksa küçük mü olduğunu önemser. Bu nedenle, hem File-Sample.rtf hem de file-sample.rtf için arama yapmasını istiyorsanız , -iname seçeneğini kullanın.

find home/user -iname File-Sample.rtf

Linux FIND Birkaç Dosya Örneği(Linux FIND Several Files Example)

Bir dosyanın .rtf ve .html sürümlerini bulmak istediğinizi varsayalım. Bu, -o(-o) (veya) operatörü kullanılarak tek bir komutta yapılabilir . Bazı dağıtımlarda, adları ( -name file-sample.rtf -o -name file-sample.html )(( -name file-sample.rtf -o -name file-sample.html )) gibi parantezlerin içine koymanız gerekebilir . 

find home/user -name file-sample.rtf -o -name file-sample.html

Bir İsimle Eşleşmeyen Linux FIND Dosyaları(Linux FIND Files That Don’t Match a Name)

Belki bir dosyanın .html sürümünün olduğunu biliyorsunuzdur, ancak başkaları varsa bilmiyorsunuzdur. -not seçeneğini kullanarak .html sürümünü aramanın dışında filtreleyebilirsiniz .

find home/user -name file-sample* -not -name *.html

Hata Sonuçları Olmadan Linux BUL(Linux FIND Without Error Results)

Özyinelemesiz bulma örneğinde, arama yapamadığı her dizini ve doğru sonucu listelediğine dikkat edin. Bu sinir bozucu. Tüm bu “ İzin(Permission) reddedildi” dizinlerini göstermesini durduralım . Başka bir Linux terminal komutuyla(Linux terminal command) birleştirin , grep. İçinde belirli sözcükler bulunan dosyaları bulmak(find files with specific words in them) için grep ile Bul'u(Find) da kullanabilirsiniz .

find -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v “Permission denied”

2>&1 parçalayalım .

2 – standart hata çıktısının kısaltması olan  stderr'yi(stderr ) temsil eder .

1 – standart çıktının kısaltması olan stdout'u(stdout) temsil eder

> - solundaki çıktıyı sağındakine yönlendirmek anlamına gelir.

& – bir araya getirmek anlamına gelir.

Yani 2>&1 standart hataları alıp yeniden yönlendirmek ve ardından bunları standart çıktıyla birlikte tek bir çıktıya koymak anlamına gelir.

Şimdi bakalım | grep -v “Permission denied” .

| (pipe denir) - Linux'a(Linux) solunda ne varsa onun sonuçlarını sağında ne varsa beslemesini söyler. grep komutuna besleniyor.

grep – bir metin arama aracıdır. 

-v - grep'e -v'nin solundaki metinle eşleşmeyen herhangi bir şeyi aramasını söyler. Bu durumda, grep'e yalnızca " İzin(Permission) reddedildi " metnini veya dizesini içermeyen her şeyi bulmasını söyler . Bu nedenle grep size yalnızca aradığınız sonuçları ve “ İzin(Permission) reddedildi” ile eşleşmeyen tüm hataları gösterecektir.

İzinlere Göre Linux BUL Örneği(Linux FIND by Permissions Example)

Bunu iyi kullanmak için Linux izinlerini öğrenmeniz(learn Linux permissions) gerekiyor . 

Örnek dosyaların tümü, izinleri 775 olan biri hariç 664 izinlerine sahiptir. Bulmak için -perm seçeneğini kullanın.

find Documents/ -name file-sample* -type f -perm 775

Boyut Örneğine Göre Linux BUL(Linux FIND by Size Example)

Dosyaları boyuta göre bulmak, bu büyük dosyaların sabit sürücünüzü doldurmasını sağlamak için kullanışlıdır. -size seçeneğini, istenen boyutu ve aşağıdaki son eklerden birini kullanın. Sonek kullanılmıyorsa, -size varsayılan olarak b olur . Belirli bir boyuta eşit ve daha büyük dosyaları bulmak için boyutun önüne artı işaretini (+) koyun.

M – Megabayt

G – Gigabayt

k – Kilobayt

b – bloklar (512 bayt – varsayılan)

c – bayt

w – kelimeler (birlikte iki bayt)

find -size +500k

Sahibinden Linux BUL(Linux FIND by Owner)

Dosyaları sahibine göre bulmanın iki yolu vardır. Biri sahibinin kullanıcı adına, diğeri ise kullanıcının grubuna göre. Kullanıcı adına göre bulmak için -user seçeneğini ve ardından kullanıcı adını kullanın. Kullanıcı grubuna göre bulmak için -group ve ardından grup adını kullanın.

-user grup(find -user groupname ) adını bul veya -user kullanıcı adını bul(find -user username)

Son Değiştirilen Örneğe Göre Linux FIND Dosyaları(Linux FIND Files by Last Modified Example)

Son X gün içinde değiştirilen veya düzenlenen dosyaları bulmak için -mtime ve ardından bir sayı kullanın. Sayının önüne bir eksi işareti ( ) koymak, o günden önce değişen herhangi bir şeyi bulacaktır. Artı işareti ( + ), şimdiden o kadar gün öncesi anlamına gelir. 

find -name “file-sample*” -mtime +5 (greater than 5 days ago)

find -name “file-sample*” -mtime -5 (less than 5 days ago)

Dakika cinsinden son değiştirilene göre bulmak için -mmin seçeneğini ve ardından dakika sayısını kullanın. + ve - yukarıdaki gibi kullanın.

find -name “file-sample*” -mmin -5

find -name “file-sample*” -mmin +5

Son Erişilen Zamana Göre Linux BUL Dosyaları Örneği(Linux FIND Files by Last Accessed TIme Example)

Dosyaları en son ne zaman açıldıklarına göre bulmak için kullanılan seçenek, günler için -atime ve dakikalar için (-atime )-amin'dir(-amin ) . Geri dönmek için gün veya dakika sayısıyla takip edin ve + ve – işaretini büyük ve küçüktür olarak kullanın.

find -name “file-sample*” -atime -5

find -name “file-sample* -amin -5

FIND'i Diğer Linux Komutlarıyla Birleştirin(Combine FIND with Other Linux Commands)

Yukarıda grep komutuyla find kullanmanın bir örneği var ve onu diğer birçok komutla kullanabilirsiniz. Bul ve diğer komutları kullanmanın çok güçlü olabileceğini ve çok büyük bir zaman kazandırdığını görebilirsiniz. Belirli bir dosya türünden bir demet silmeniz gerektiğini hayal edin . (Imagine)Dosya gezgininde arama yapmak yerine, sadece doğru komutu oluşturun ve bu işlem saniyeler içinde tamamlanır. Şimdi find komutunu nasıl kullanacaksınız?



About the author

Merhaba potansiyel işverenler! Alanında 7 yılı aşkın deneyime sahip son derece deneyimli bir yazılım mühendisiyim. Windows 7 uygulamalarını nasıl tasarlayıp geliştireceğimi biliyorum ve profilimde çok çeşitli Harika Web Siteleri önerileri var. Becerilerim ve deneyimlerim, iyi proje yönetimi becerilerine, programlama bilgisine ve web geliştirme deneyimine sahip yetenekli bir birey arayan herhangi bir şirket için bana mükemmel bir eşleşme sunuyor.



Related posts