Dizinde tam olarak bir dosya bul


2

Çok büyük dosya koleksiyonum var. Command find komutunu kullandığımda bu koleksiyonda yalnızca bir dosya olduğundan eminim. Tüm bulma komutlarımı daha hızlı yapmak için, sadece bir dosya bulana kadar find komutunu çalıştırmak istiyorum. Daha fazla dosya beklememe gerek yok. Belki sonları olan bir bash betiği ...

Nasıl yapılacağı hakkında bir fikrin var mı?

linux  ubuntu  find 

Yanıtlar:


5

GNU ile find kullanabilirsiniz -quit seçeneği.

Örneğin, aşağıdaki komut bulunan ilk txt dosyasını yazdıracak ve sonra çıkacaktır.

find . -name "*.txt" -print -quit

Teşekkürler. İyi çalıştı.

0

Kılavuzu okumayı deneyin ( man find ):

-quit

Hemen çıkın. Hiçbir alt işlem çalıştırılmayacak,   ancak belirtilen başka yol yok             komut satırı işlenecek. Örneğin, / tmp / foo / tmp / bar -print -quit komutunu basacak             sadece / tmp / foo. -Execdir ... {} + ile oluşturulan tüm komut satırları             Çıkmadan önce çağrıldı. Çıkış durumu, aramanın durumuna bağlı olarak sıfır olabilir veya olmayabilir.             hata zaten oluştu.


0

sed ile find'i kullanabilirsiniz:

[za@pc-02 ~]$ find ./ -iname  '[0-9]' | sed 1q
./1
[za@pc-02 ~]$ find ./ -iname  '[0-9]'
./1
./3
./2
[za@apc-02 ~]$ ls
1  2  3  vim

sed 1q - Bulmak için üreten tek bir satıra ihtiyacınız olduğunu gösterir. Birden fazla satıra ihtiyacınız varsa bunu yazın 10q (10 satır)

[0-9] bu regexp, aralıkta yalnızca bir rakam eşleşmesi anlamına gelir 0-9


Bu cevap olduğu gibi çok yardımcı değil. belki de gerçekten ne demek istediğinizi açıklamak için en az birkaç kelime söyleyebilirsiniz ve soruyu nasıl cevaplar?
mvp

kısa bir açıklama ile güncellendi
Dmitry Zagorulkin
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.