Anda hanya melewatkan predikat yang mengatakan apa yang Anda cari (mis -name
.)
Untuk menemukan di direktori home dengan nama:
find ~ -name \*.pdf
Perhatikan bahwa wildcard *
harus melarikan diri sehingga shell tidak mengartikannya sebelum ditemukan. Menggunakan '*.pdf'
dan "*.pdf"
akan memiliki efek yang sama dengan \*.pdf
.
Untuk menemukan case-insensitive:
find ~ -iname \*.pdf
Untuk memangkas hasil ke file saja (ekspresi nama mungkin akan menangani ini untuk Anda, tetapi kalau-kalau Anda memiliki direktori bernama aneh):
find ~ -type f -iname \*.pdf
Untuk memastikan menemukan, ikuti tautan simbolis (biasanya saya ingin melakukannya sendiri saat melakukan pencarian):
find ~ -follow -type f -iname \*.pdf
Untuk melakukan sesuatu dengan file yang Anda temukan: Anda dapat membuang ini ke file menggunakan stdout redirection (misalnya tack on > filename
di akhir), atau gunakan -exec
opsi untuk menjalankan perintah (lihat halaman manual untuk detail). Yang terakhir menjalankan perintah pada setiap file sekaligus. seringkali lebih cepat membiarkan xargs
perintah meneruskan file yang ditemukan sebagai argumen ke perintah lain, sekaligus atau potongan besar sekaligus. Misalnya, untuk ad-hoc (tetapi tidak terindeks) greps melalui file header:
find ~ -follow -type f -name \*.h | xargs grep -nH "identifier"
Dan satu ekstensi terakhir, untuk membuat perintah terakhir itu berfungsi dengan baik jika Anda memiliki file & direktori dengan spasi di dalamnya:
find ~ -follow -type f -name \*.h -print0 | xargs -0 grep -nH "identifier"
find
jauh dari sia-sia.