Linux terminali karmaşık görünen bir metin arayüzü olmasına rağmen, aslında çok esnek, kullanımı kolay ve oldukça kullanışlı bir araçtır. Komutlar çevrimiçi kaynaklardan kolayca kopyalanabilir ve çeşitli işlemleri gerçekleştirmek için terminale yapıştırılabilir. Tonlarca komut var ama bu gönderi find komutuna odaklanacak.
Find komutu, sisteminizdeki dosya ve klasörleri kullanıcı tarafından belirlenen koşullara göre bulmak, filtrelemek veya aramak ve bunlar üzerinde çeşitli işlemler gerçekleştirmek için kullanılır.
Find komutunun nasıl kullanılacağını, söz dizimini ve bu komut tarafından gerçekleştirilen çeşitli işlemleri detaylı olarak ele alalım.
Linux'ta find Komutunun sözdizimi
Find komutu sözdizimi aşağıda gösterilmiştir:
bulmak [yol] [seçenekler] [ifade]
find komutuyla birlikte üç özellik gider:
- [path]: Aramaya başlayacağı dizini tanımlar.
- [seçenekler]: Filtreleme kriterlerini tanımlar örn. bir dosya/klasörü adına, iznine, saatine veya tarihine göre aramak.
- [ifade]: Dosya ile hangi eylemlerin gerçekleştirileceğini tanımlar.
Yukarıdaki özelliklerin tümü, ihtiyaca göre kullanılabildikleri için isteğe bağlıdır.
Gösterim için farklı dizinler ve bazı metin dosyaları oluşturdum, aşağıdaki resme bakın:
Ada Göre Dosya Bulma
Dosyayı ada göre aramak için aşağıda verilen komutu kullanın:
$bulmak.-isimMyTextFile1.txt
Yukarıdaki komutta bulduktan sonraki nokta, geçerli dizini gösterir.
Tam dosya adını hatırlamıyorsanız, arama daha da hassaslaştırılabilir ve ad yerine -iname kullanılarak büyük/küçük harfe duyarlı hale getirilebilir:
$bulmak.-inamemetin dosyam1.txt
Türüne Göre Dosya Bulma
Bir dosyayı türüne göre bulmak için, dosyalar için f, dizinler için d, sembolik bağlantı için l ve soketler için s gibi tanımlayıcılar olarak da bilinen harflerle -type seçeneğini kullanın.
Tüm dizinleri aramak için şunu kullanın:
$bulmak.-tipNS
Dosyaları aramak için şunu kullanın:
$bulmak.-tipF
Dosya Uzantısıyla Dosya Bulma
Dosyayı desene göre aramak için, örneğin tüm dosyaları .txt ile görüntülemek gibi dosya uzantısı için aşağıdaki komutu kullanın:
$bulmak.-isim *.txt
.txt içeren tüm dosyalar, ilgili dizinleriyle birlikte görüntülenecektir.
Dosya Bulma ve Silme
Bir dosyayı aramak ve silmek için aşağıdaki komutu kullanın:
$bulmak.-inamemetin dosyam1.txt-exec rm {};
Yukarıdaki komut önce dosyayı arar ve ardından siler. Resim MyTextFile1'in silindiğini gösteriyor.
.txt uzantılı tüm dosyaları silmek için eklenen komutu kullanabilirsiniz:
$bulmak.-isim *.txt-silmek
Boyutuna Göre Dosya Bulma
Find komutu, bir dosyayı boyuta göre de arayabilir. Basitçe -size seçeneğini, sırasıyla 512 Kb bloklar için b, baytlar için c, kilobaytlar için k, megabaytlar için M ve G ve gigabaytlar için gibi tanımlayıcılarıyla birlikte kullanın:
$bulmak.-tipF-boy -1024c
Yukarıda bahsedilen komut, boyutu 1024 bayttan küçük olan tüm dosyaları arar. Arama daha da geliştirilebilir, örneğin, 1Mb'den küçük tüm dosyaları bulmak istiyorsak, aşağıdaki komutu kullanırız:
$bulmak.-tipF-boy1 milyon
1Mb'den büyük tüm dosyalar için aşağıdaki komutu kullanın:
$bulmak.-tipF-boy+1 milyon
Eklenen komut kullanılarak bir boyut aralığı da tanımlanabilir:
$bulmak. -tipF-boy+1 milyon-boy10 milyonDosyaları İzne Göre Bulma
Bir dosyayı izne göre aramak için -perm seçeneğini, ardından aşağıda gösterildiği gibi izin kodunu kullanacağız:
$bulmak.-perma 664
Metin Dosyaları İçinde Bir Metin Bul
Sisteminizdeki birden çok metin dosyasındaki metni bulmak için aşağıdaki komutu kullanın:
$bulmak.-tipF-isim *.txt-exec kavramak'Merhaba'{};
Komut, metin dosyalarında Hello kelimesini arıyor. Çıktı, Hello içeren metin dosyalarından metin dizeleridir.
Değişiklik Tarihine ve Saatine Göre Dosya Bulma
Bir dosyaya son değişikliğiyle erişmek için aşağıdaki komutu kullanın:
$bulmak.-tipF-iname *.txt-dk+10
Yukarıdaki komut, en son dört dakika önce değiştirilen bir dosyayı arıyor ve m, Değiştirmeyi ifade ediyor.
$bulmak. -tipF-iname *.txt-amin -10
Yukarıdaki komut, en son 4 dakika önce erişilen bir dosyayı arıyor ve amin'deki a, Access'i ifade ediyor. Dört gün önce değiştirilmiş bir dosyaya erişmek için, mmin +4 yerine -mtime +4 kullanın.
Çözüm
Linux'taki find komutu, farklı kriterler kullanarak bir dosya veya dizini aramanıza ve hatta dosyaları terminalden değiştirmenize izin veren çok kullanışlı bir komuttur. Bu kılavuzda, Linux'ta find komutunun sözdizimini gözlemledik ve çeşitli işlevleri gerçekleştirmek için find komutunun nasıl kullanılacağını öğrendik.