Saya biasanya menggunakan gaya perintah ini untuk menjalankan grepbeberapa file:
find / -xdev -type f -print0 | xargs -0 grep -H "800x600"
Apa yang sebenarnya dilakukan adalah membuat daftar setiap file pada sistem, dan kemudian untuk setiap file, jalankan grepdengan argumen yang diberikan dan nama setiap file.
The -xdevArgumen mengatakan menemukan bahwa itu harus mengabaikan filesystem lain - ini baik untuk menghindari filesystem khusus seperti /proc. Namun itu juga akan mengabaikan sistem file normal juga - jadi jika, misalnya, folder / home Anda berada di partisi yang berbeda, itu tidak akan dicari - Anda perlu mengatakannya find / /home -xdev ....
-type fberarti mencari file saja, sehingga direktori, perangkat, dan file khusus lainnya diabaikan (masih akan muncul kembali menjadi direktori dan dieksekusi greppada file dalam - itu tidak akan dieksekusi greppada direktori itu sendiri, yang tidak akan berfungsi lagi). Dan -Hopsi untuk grepmemberitahu itu untuk selalu mencetak nama file dalam outputnya.
findmenerima segala macam opsi untuk memfilter daftar file. Misalnya, -name '*.txt'hanya memproses file yang diakhiri dengan .txt. -size -2Mberarti file yang lebih kecil dari 2 megabita. -mtime -5berarti file yang dimodifikasi dalam lima hari terakhir. Gabungkan ini bersama dengan -a untuk dan dan -o untuk atau , dan gunakan '('tanda kurung ')'untuk ekspresi grup (dalam tanda kutip untuk mencegah shell menafsirkannya). Jadi misalnya:
find / -xdev '(' -type f -a -name '*.txt' -a -size -2M -a -mtime -5 ')' -print0 | xargs -0 grep -H "800x600"
Lihatlah man finduntuk melihat daftar lengkap kemungkinan filter.
Permission deniedkesalahan? Apakah Anda menjalankannya sebagai root atau pengguna biasa?