-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