Yanıtlar:
Veya...
find $directory_name -name \*.sql
Örneğin
find / -name \*.sql
Veya
find ~ \*.sql
(burada ~ / home / kullanıcı adınız / ifadesine eşittir) veya ...
find /usr/local/share/ \*.sql
ve benzerleri.
Bunu komut satırında çalıştırın:
cd / && find | grep '\.sql$'
'/' Öğesini aramak istediğiniz dizine değiştirin.
find
Komut (ekstra seçenekler kullanılarak) grep olmadan görevi başarmak mümkün, ama yukarıdaki kullanım daha uygun buluyorum.
Sırayla, yukarıdaki komut:
cd /
)find
)| grep '\.sql$'
) ile biten herhangi bir şey için filtrelerfind
zaten filtre özelliklerine sahip
Bu eski bir yazı olduğunu biliyorum, ama ben bu konuda oldukça yeniyim ve bir dizinde ve alt alt dizinlerinde belirli bir uzantı tüm dosyaları bulmak için kolay bir yol bulduk. İlk önce parent Directory
o zaman gidin find . -name '*.sql'
ve bu size dizinlerde ve alt dizinlerinde .sql uzantılı tüm dosyaları bulacaksınız .
Benim durumumda , dizin ve alt dizinlerindeki tüm .xml dosyalarını silmek istedim , bu yüzden daha fazlasını yaptım, burada olduğu gibi kaldırmayı ekledimfind . -name '*.xml' | xargs rm
Umarım bu yardım eder :)
find
-delete
komutu anlar . Katılmaya gerek yok rm
. Veya -exec
komutu bir borudan dolambaçsız olarak doğrudan çağırmak için kullanabilirsiniz xargs
.
locate -br \\.sql$ | egrep '^/folder/path/'
Yüklü değilse, daha önce şununla yükleyin:
sudo apt install mlocate
mlocate.db
Ubuntu'da (blieve) kullanıma hazır olmayan güncel bir örnek gerektirir . Ayrıca, neden basit değil locate '/folder/path/*.sql'
?
locate
kullanılan egrep
locate
/folder/path/*.sql
normal ifadelerle değil, glob ifadelerle eşleşir .
man locate
ben -r, --regexp REGEXP - Search for a basic regexp REGEXP
bu yüzden bir regex olduğunu varsayalım. Her neyse, "küresel ifadenizi" denedim ama işe yaramıyor, üzgünüm
--regex
Belirtilmezse, PATTERN
s globbing karakterler içerebilir.” ( Kaynak )