Yanıtlar:
Doğrudan eşdeğer
find . -iname <filename>
<filename>geçerli dizinde ve tüm alt dizinlerde çağrılan tüm dosya ve dizinleri listeleyerek büyük / küçük harfleri görmezden gelir.
Bulma sürümünüz desteklemiyorsa -iname, -namebunun yerine kullanabilirsiniz . Bunun aksine -iname, -namebüyük / küçük harfe duyarlıdır.
<filename>Dizinleri değil, yalnızca denilen dosyaları listelemek istiyorsanız ,-type f
find . -iname <filename> -type f
Joker karakterler kullanmak istiyorsanız, etrafına tırnak işareti koymanız gerekir, örn.
find . -iname "*.txt" -type f
aksi takdirde kabuk onu genişletir.
Diğerlerinin işaret ettiği gibi şunları da yapabilirsiniz:
find . | grep "\.txt$"
grep joker karakterlerden daha güçlü ancak farklı bir sözdizimine sahip düzenli ifadelere dayalı satırlar basar.
Daha fazla ayrıntı için man findve bölümüne bakın man grep.
<filename>Userinput için işaretleyici olarak kullanmak , < and >çoğu zaman belirli bir anlama sahip olan komut satırı ortamında kötü bir alışkanlıktır . Sadece filenamevurgulamak için belki FILENAME kullanmanızı öneririm . Çoğu insan anlar ve anlamayacak olanlar, işaretten daha az veya daha fazla çarpmamaları gerektiğini anlamadıkları zaman zarar verebilirler.
<filename>UNIX belgelerinde bir kuraldır, bu yüzden insanların bunun farkında olması yararlı olduğunu düşünüyorum, ancak FILENAMEanlaşılması daha kolay olabilir.
find -iname <filename>DOS gibi büyük / küçük harfe duyarlı olmadığından daha iyidir
Bazı mermiler izin verir ls **/filename, ki bu oldukça uygundur.
shopt -s globstar; echo **/filenameeşdeğerdir find . -name "filename". Ayrıca zsh olarak da çalışır.
shopt -s globstar, muhtemelen sizin için çalışacaktır. Özyinelemeli globbing, yalnızca bazı kabuklarda bulunan bir özelliktir ve bazen varsayılan olarak açık değildir.
shoptkomut seçeneği etkinleştirir globstar on. Şimdi bir cazibe gibi çalışıyor. Çok teşekkürler.
Bunu ile yapabilirsiniz
find . | egrep filename
find . -regextype posix-egrep -regex '.*filename.*'( egrepegrep
grepDOS komutu kabuk joker karakterlerini kullanırken normal ifadeler kullanır.
find . -name "*.*"DOS arka planından beklediğinizi yapmayacaksınız. Bununla birlikte, küreler tanınabilecek kadar yakınken, regex'ler tamamen yeni bir canavardır.
*.*.*yani pencereler cmd modern dos yapmak? Ne olmuş *.*.*.*?
Ayrıca: tree -if </your/path>veya 'pwd'bir yol olarak da olabilir
<filename>joker içeren, örneğin çevresinde tırnak kullanabilirsinizfind . -name '*.txt'.