Linux'ta içeriğe göre dosya aramayı kullanmak, büyük ve karmaşık dosya sistemlerinde belirli bilgileri ararken harcanan zamanı ve çabayı önemli ölçüde azaltabilir.
Bu arama özellikle belirli bir dize veya anahtar kelime içeren dosyaları bulmak istediğinizde ya da belirli bir desen veya kritere uyan tüm dosyaları bulmak istediğinizde yararlı olabilir.
Dosyaları içeriğe göre aramak, büyük metin dosyalarında belirli bir metni bulmak gibi çeşitli görevler için kullanılabilir:
Dosyaları içeriğe göre aramanın genel amacı, dosya sistemiyle çalışmayı ve dosya sisteminde ihtiyacınız olan bilgileri bulmayı kolaylaştırmaktır.
Ack yardımcı programı ile başlayalım. 2005 yılında grep'e alternatif olarak oluşturuldu ve geliştiriciler arasında hızla popüler oldu.
Aşağıdakiler de dahil olmak üzere grep
'e göre çeşitli avantajları vardır:
grep
gibi her yerde, hatta sistem klasörlerinde bile arama yapmaya çalışmaz. Bu, sisteminizde gizlenmiş dosyaları kolayca bulabileceğiniz anlamına gelir.ack'ın nasıl kullanılacağına dair örnekler:
- Geçerli klasörde ve alt klasörlerinde
"test"
kelimesini içeren tüm dosyaları bulun: ack "test"
- Aynı şey, ancak
.bak
uzantılı dosyaları hariç tutarak: ack "test" --ignore-file=match:/.bak$/
- Geçerli klasörde "hello" dizesini içeren tüm dosyaları bulun ve her dosyanın ilk 2 satırının çıktısını alın:
ack "hello" --heading --max-count=2
İkinci ilginç araç ripgrep'tir. Birçok yönden ack'a benzer, ancak daha hızlı bir arama algoritması kullanır, bu da onu özellikle büyük projeler için yararlı kılar.
İşte bazı örnekler:
"test"
kelimesini içeren tüm dosyaları bulun : rg "test"
.bak
uzantılı dosyaları hariç tutarak : rg "test" --glob "!*.bak"
rg "h
ello" --heading --max-columns=2
Son olarak fzf'den bahsetmekte fayda var. ack ve ripgrep gibi sadece bir string bulucu değildir. Fzf, bir listedeki dosyaları, klasörleri ve öğeleri bulmak için bir yardımcı program olarak kullanılır. Aksi takdirde ack/ripgrep'e benzer şekilde çalışır, ancak sonuçları canlı filtreleme yeteneği eklenmiştir. İşte bazı örnekler:
- Bilgisayarınızda F harfi ile başlayan dosyaları arayın:
locate F | fzf -m
- Geçerli klasörden çıkın ve istediğim dizine gidin:
cd **<TAB> | fzf
- SVN revizyonunu seçin ve numarayı panoya kopyalayın:
svn log | fzf --reverse --ansi | awk '{print $1}' | pbcopy
Umarım bu araçlar ihtiyacınız olan dosyaları ve dizeleri hızlı ve verimli bir şekilde bulmanıza yardımcı olur. Hangisini seçerseniz seçin, hepsi işinizi önemli ölçüde hızlandırabilecek gelişmiş aramalar sunar.