Bir dizinde aynı uzantıya sahip tüm dosyalar nasıl bulunur


62

Linux'ta acemiyim ve .confiçindeki tüm dosyaları aramak istiyorum /etc/.

Denedim grep -r *.conf /etcama sonuç doğru değil.

Neyi yanlış yapıyorum?

Yanıtlar:


95

Terminal'i açmak için klavyenizdeki Ctrl+ Alt+ tuşlarına basın T. Açıldığında, aşağıdaki komutu çalıştırın:

find . -type f -name "*.txt"

Bu, uzantıdaki tüm dosyaları listeler .txt.

.Başında geçerli dizini gösterir. findVerilen yolun altındaki tüm dizinlerde tekrarlı olarak arama yapar. Aramanın geçerli çalışma dizinden başka bir yerden başlamasını istiyorsanız, yolu belirtin, örneğin:

find /etc -type f -name "*.conf"

Bu, /etcdizinde ve tüm alt dizinlerinde .confuzantıya sahip normal dosyalar arar .


1
İşe yarıyor. Bu komut için alternatif var mı?
Adrian George,

1
Loca'ya göz atabilirsiniz .
Mitch

@AdrianGeorge findçok yaygın bir şekilde kullanılır, çok iyi belgelenir ve üzerinde çalışılması daha kolay olan bir şey bulmanın daha zor olacağı pek çok StackOverflow / Exchange yayını vardır. Hemen yapmak istediğiniz her şey çevrimiçi bir yere yazılmış.
BallpointBen

6

Ben şahsen kullanırdım find, ama sen de bu şeylerden kaçabilirsin:

shopt -s globstar
ls /etc/{,**/}*.conf

Ve konumlandırmayı kullanabilirsiniz ve hızlıdır ancak güvenilir değildir.

locate '/etc/**.conf'

Neden locategüvenilir değil ?
Giraldi

1
@Giraldi locatemlocate veri tabanına dayanarak yakın zamanda güncellenmiştir. Varsayılan olarak, yalnızca günde bir kez güncellenmesi zamanlanır (elle zorlayabilirseniz de updatedb).
Oli

@Oli olsa mac, doğru değil mi? mac os mlocate'i güncel tutuyor düşünüyorum
d8aninja

6

grepdosya adlarını değil dosya içeriğini arar .

İçindeki tüm .confdosyaları bulmak için bulmak /etc/isteyeceksiniz:

find /etc -name "*.conf"

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.