Karena Anda tidak melakukan pencarian rekursif, tidak perlu menggunakan find
, kecuali Anda hanya ingin memasukkan direktori dan bukan tautan simbolik ke direktori. Dengan asumsi tidak ada direktori yang namanya dimulai dengan titik (jika ada, gunakan for x in .*/ */; do …
), berikut ini akan mencari nama semua direktori dan tautan simbolik ke direktori di direktori saat ini:
for x in */; do grep -F "GET /${x%/}" /var/log/apache2/blah.com; done
Jika Anda melakukan pencarian rekursif, Anda dapat menghindari titik terkemuka dengan mencari dari *
daripada .
(komentar yang sama seperti di atas mengenai nama yang dimulai dengan titik).
find * -type d -exec grep -F "GET /${x%/}" /var/log/apache2/blah.com
Kemungkinan lain adalah untuk memposting output dari find
. Ini sangat berguna dalam kombinasi dengan kemampuan grep untuk mencari beberapa pola yang dipisahkan oleh baris baru.
grep -F "$(find . -type d | sed -e 's!^\.!GET !')" /var/log/apache2/blah.com
Perhatikan bahwa dalam semua kasus Anda mengasumsikan tidak ada karakter dalam nama direktori yang akan lolos dalam log Apache. Ini dapat dipecahkan dengan postprocessing sedikit lebih lanjut dari find
keluaran.