Saya mencari melalui repositori Git dan ingin memasukkan .git
folder tersebut.
grep
tidak termasuk folder ini jika saya jalankan
grep -r search *
Apa perintah grep untuk memasukkan folder ini?
sumber
Saya mencari melalui repositori Git dan ingin memasukkan .git
folder tersebut.
grep
tidak termasuk folder ini jika saya jalankan
grep -r search *
Apa perintah grep untuk memasukkan folder ini?
Silakan merujuk ke solusi di akhir posting ini sebagai alternatif yang lebih baik untuk apa yang Anda lakukan.
Anda dapat secara eksplisit menyertakan file tersembunyi (direktori juga merupakan file).
grep -r search * .*
The *
akan cocok dengan semua file kecuali yang tersembunyi dan .*
akan cocok hanya file tersembunyi. Namun ini akan gagal jika tidak ada file non-tersembunyi atau tidak ada file tersembunyi di direktori tertentu. Anda tentu saja dapat menambahkan secara eksplisit, .git
bukan .*
.
Namun, jika Anda hanya ingin mencari di direktori tertentu, lakukan seperti ini:
grep -r search .
The .
akan cocok dengan jalan saat ini, yang akan mencakup non-tersembunyi dan file tersembunyi.
.*
akan menyertakan direktori induk (karena..
cocok)Saya baru saja mengalami masalah ini, dan berdasarkan jawaban @ bitmask, berikut adalah modifikasi sederhana saya untuk menghindari masalah yang ditunjukkan oleh @sehe:
sumber
sudo grep -r ANDROID_HOME * .[^.]*
apa yang saya lakukan salah di sini?Mungkin Anda lebih suka menggabungkan "grep" dengan perintah "temukan" untuk solusi lengkap seperti:
Perintah ini akan mencari di dalam file atau direktori tersembunyi untuk string "pencarian" dan mencantumkan file apa pun yang kebetulan dengan format keluaran ini:
Jalur file: Nomor baris: baris dengan kebetulan
sumber
Anda mungkin ingin menggunakan pendekatan ini, dengan asumsi Anda sedang mencari direktori saat ini (jika tidak ganti. Dengan direktori yang diinginkan):
atau jika Anda hanya ingin mencari di tingkat atas (yang lebih cepat diuji jika Anda mencobanya):
PEMBARUAN: Saya mengubah contoh sebagai tanggapan atas komentar Scott. Saya juga menambahkan "-type f".
sumber
~
adalah direktori home pengguna. Pertanyaannya bukan tentang direktori home pengguna, jadi jawabannya tidak boleh disebutkan~
. (2) Dalam sebuahfind
perintah,-name '*'
adalah no-op (yaitu, tidak ada gunanya).Untuk mencari di dalam HANYA semua file dan direktori tersembunyi dari lokasi Anda saat ini:
HANYA semua file tersembunyi:
HANYA semua direktori tersembunyi:
sumber
Semua jawaban lainnya lebih baik. Yang ini mungkin mudah diingat:
Ia hanya menemukan file (termasuk tersembunyi) dan grep setiap file.
sumber
Untuk menemukan hanya dalam folder tertentu, Anda dapat menggunakan:
Ini adalah perintah yang sangat sederhana untuk mendaftar dan menyalurkan ke grep.
sumber
Selain saran Tyler, Berikut adalah perintah untuk melakukan grep semua file dan folder secara rekursif termasuk file tersembunyi
sumber
Untuk mencegah pencocokan
.
dan..
yang bukan merupakan file tersembunyi, Anda dapat menggunakangrep
denganls -A
seperti dalam contoh ini:^\.
menyatakan bahwa karakter pertama harus.
The
-A
atau--almost-all
opsi tidak termasuk hasil.
dan..
sehingga hanya file tersembunyi dan direktori dicocokkan.sumber
Anda juga dapat mencari jenis file tersembunyi tertentu seperti untuk file direktori tersembunyi:
Ini mungkin bekerja lebih baik daripada beberapa opsi lainnya. Opsi lain yang berfungsi bisa jadi terlalu lambat.
sumber