Cara mencari berdasarkan konten di Ubuntu

8

Saya ingin mencari seluruh server berdasarkan konten. (file teks)

Ketika saya mencoba grep -rl "text here", membeku.

Bagaimana Anda melakukannya?

Dan berapa lama biasanya?

webnat0
sumber

Jawaban:

17

Anda perlu menentukan file saat menggunakan grepperintah. Dengan perintah yang Anda gunakan, Anda mencari di input standar ...

Coba grep -r "test" directory.

ChrisJ
sumber
7
find / -name "*.txt" -exec grep "text here" {} \; -print 2>/dev/null

Yang dapat dijelaskan dalam bahasa manusia adalah:

  1. Temukan
  2. mulai dari /
  3. di semua file bernama * .txt (kutipan adalah untuk memotong interpretasi shell)
  4. dengan klik yang dihasilkan, lakukan hal berikut
  5. grep "tes di sini"
  6. dalam file {}
  7. akhir exec (\;) lolos dari akhir pernyataan
  8. cetak file yang cocok
  9. redirect pesan kesalahan di wastafel (karena Anda mungkin tidak menjadi root, kalau tidak sudo saja).
Alain Pannetier
sumber
dikatakan "temukan: argumen hilang ke 'grep'"
webnat0
bekerja disini bagaimana Anda mengganti "tes di sini"?
Alain Pannetier
1
@ Davidey: Hanya ada satu backslash.
Dijeda sampai pemberitahuan lebih lanjut.
1
@Dennis. Tergantung pada bahasa ibu Anda. Di Jepang dan Korea, ada beberapa set karakter di mana garis miring terbalik juga diberikan sebagai tanda Yen atau tanda Wong (0x5c). Juga, silakan lihat u + 20E5. Di masa lalu ada beberapa eksploitasi di IIS di mana Anda dapat menjelajahi seluruh disk (di mana IIS berakar) dari PC hanya dengan mencampur slash nyata dan false (unicode setara lainnya dikonversi ke bawah dalam rencana ascii) garis miring dan setidaknya satu menggunakan overlay solidus terbalik.
Alain Pannetier
0

Anda lupa menentukan jenis file apa yang ingin Anda cari,
pastikan Anda login sebagai root

cd /
grep -rl "text here" *  > /tmp/match.txt

ini akan memakan waktu yang sangat lama, dan Anda dapat mengumpulkan hasilnya nanti dengan memeriksa /tmp/match.txt

nyata
sumber
0

Perintah berikut mencari semua file yang diakhiri dengan .txt di direktori kerja saat ini dan semua subdirektori:

find . -type f -name '*.txt' -exec grep -Hn "text here" {} \;


sumber