Mac'inizi terminal kullanarak aramak için herhangi bir komut var mı? Bizi aramaya koştum ama biraz tepkisiz görünüyor ve hiçbir şey çıkmadı.
Örneğin, "grep Files" (Bir klasör adı) yazardım ve sadece boş bir satır yazdırır ve hiçbir şey olmuyor.
Mac'inizi terminal kullanarak aramak için herhangi bir komut var mı? Bizi aramaya koştum ama biraz tepkisiz görünüyor ve hiçbir şey çıkmadı.
Örneğin, "grep Files" (Bir klasör adı) yazardım ve sadece boş bir satır yazdırır ve hiçbir şey olmuyor.
Yanıtlar:
Yalnızca belirli bir ada sahip dosyaları bulmak istiyorsanız, find
Man sayfası BURADA veya man find
terminal isteminde yazarak bulunabilir .
Temel olarak, bul belirlediğiniz bir dosya toplantısı ölçütünü tekrar tekrar arayacaktır. En kolay örnek:
find . -name file_name -print
Bu, geçerli dizinde başlayan ve aşağıda arama yaparak "dosya_adı" adlı bir dosyayı arayacak ve bu adı taşıyan dosyaları yazacaktır.
find ~ -name ".DS_Store" -delete
Bu tüm .DS_Store dosyalarını bulur ve siler.
Adı, regex, tarihe göre arama yapabilirsiniz. Dosya üzerinde herhangi bir Unix yolu ile belirtme ile hareket edebilirsiniz -exec
.
Find'ı daha karmaşık bir eylemler dizisinin başlangıcı olarak da kullanabilirsiniz. Örnek:
find . -type f -print | egrep -i '\.m4a$|\.mp3$'
.M4a veya .mp3 uzantılı tüm dosyaları bulur
find . -type f -print | egrep -i '\.m4a$|\.mp3$' | wc -l
Size bu dosyaların sayısını verir.
-print
belirtme ise, ihmal edilebilir; Ayrıca, basit globbing kullanılabilir. Böylece .txt
bir dizinin altındaki tüm dosyaları bulma foo
işlemifind foo -name \\*.txt
find .
Cwd'den özyinelemelidir. find .
Kök dizininize yazmaya çalışın !
Eğer bütün bir klasörü aramak istiyorsanız grep üzerinde -r komutunu kullanın:
grep -r pattern folder/to/search
Bul ile xargs kullanabilirsiniz:
find folder/to/search -name '*.txt' | xargs grep pattern
veya aynı anda iki dosyayı aradığınızdan ve bu nedenle belirtilen dosya adlarına sahip olduğunuzdan emin olmak için:
find folder/to/search -name '*.txt' | xargs grep -n2 pattern
grep
Hem bir model hem de bir dosya açıklaması bekler. Eğer biri eksikse, kalıp olarak geçenleri kullanır ve verinin standart girdi ile aranmasını bekler.
Daha karmaşık bir filepec kullanmak istiyorsanız, o zaman kullanın find
.
find ~ -name '*.txt' -exec grep -q 'secret' {} \; -print
-exec
yüklemini kullanmanıza gerek yoktur find
.