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
, -name
bunun yerine kullanabilirsiniz . Bunun aksine -iname
, -name
bü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 find
ve 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 filename
vurgulamak 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 FILENAME
anlaşı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 **/filename
eş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.
shopt
komut 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.*'
( egrep
egrep
grep
DOS 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'
.