-maxdepth opsi harus sebelum -name opsi, seperti di bawah ini.,
find . -maxdepth 1 -name "string" -print
Gunakan find :
find . -maxdepth 1 -name "*string*" -print
Ini akan menemukan semua file di direktori saat ini (hapus maxdepth 1 jika Anda menginginkannya secara rekursif) berisi "string" dan akan mencetaknya di layar.
Jika Anda ingin menghindari file yang berisi ':', Anda dapat mengetik:
find . -maxdepth 1 -name "*string*" ! -name "*:*" -print
Jika Anda ingin menggunakan grep (tapi menurut saya tidak perlu selama Anda tidak ingin memeriksa konten file) Anda dapat menggunakan:
ls | grep touch
Tapi, saya ulangi, find adalah solusi yang lebih baik dan lebih bersih untuk tugas Anda.
Gunakan grep sebagai berikut:
grep -R "touch" .
-R berarti berulang. Jika Anda lebih suka tidak membuka subdirektori, lewati saja.
-i berarti "abaikan kasus". Anda mungkin menganggap ini juga patut dicoba.
find $HOME -name "hello.c" -print
Ini akan mencari seluruh $HOME (mis. /home/username/ ) untuk file apa pun yang bernama "hello.c" dan tampilkan nama jalurnya:
/Users/user/Downloads/hello.c
/Users/user/hello.c
Namun, itu tidak akan cocok dengan HELLO.C atau HellO.C . Untuk mencocokkan tidak peka huruf besar-kecil, berikan -iname pilihan sebagai berikut:
find $HOME -iname "hello.c" -print
Keluaran sampel:
/Users/user/Downloads/hello.c
/Users/user/Downloads/Y/Hello.C
/Users/user/Downloads/Z/HELLO.c
/Users/user/hello.c
Berikan -type f opsi untuk hanya mencari file:
find /dir/to/search -type f -iname "fooBar.conf.sample" -print
find $HOME -type f -iname "fooBar.conf.sample" -print
-iname bekerja baik pada perintah pencarian versi GNU atau BSD (termasuk OS X). Jika versi perintah find Anda tidak mendukung -iname , coba sintaks berikut menggunakan grep perintah:
find $HOME | grep -i "hello.c"
find $HOME -name "*" -print | grep -i "hello.c"
ATAU coba
find $HOME -name '[hH][eE][lL][lL][oO].[cC]' -print
Keluaran sampel:
/Users/user/Downloads/Z/HELLO.C
/Users/user/Downloads/Z/HEllO.c
/Users/user/Downloads/hello.c
/Users/user/hello.c