Terlepas dari seberapa terorganisir saya memutuskan untuk menjadi, tampaknya selalu ada saat-saat ketika saya tidak dapat menemukan file. Kadang-kadang karena saya tidak ingat nama file di tempat pertama. Di lain waktu, saya tahu namanya, tetapi saya tidak ingat di mana saya memutuskan untuk menyimpannya. Bahkan ada kalanya saya membutuhkan file yang tidak saya buat sejak awal. Namun, apa pun masalahnya, saya tahu bahwa pada sistem POSIX, saya selalu memiliki find
perintah.
Lebih banyak sumber daya Linux
- Lembar contekan perintah Linux
- Lembar contekan perintah Linux tingkat lanjut
- Kursus online gratis:Ikhtisar Teknis RHEL
- Lembar contekan jaringan Linux
- Lembar contekan SELinux
- Lembar contekan perintah umum Linux
- Apa itu container Linux?
- Artikel Linux terbaru kami
Menginstal temukan
find
perintah ditentukan oleh spesifikasi POSIX, yang menciptakan standar terbuka yang digunakan untuk mengukur sistem POSIX (termasuk Linux, BSD, dan macOS). Sederhananya, Anda sudah memiliki find
diinstal selama Anda menjalankan Linux, BSD, atau macOS.
Namun, tidak semua find
perintah yang persis sama. GNU find
perintah, misalnya, memiliki fitur yang find
BSD atau Busybox atau Solaris perintah mungkin tidak memiliki atau memang memiliki tetapi mengimplementasikan secara berbeda. Artikel ini menggunakan GNU find
dari paket findutils karena sudah tersedia dan cukup populer. Sebagian besar perintah yang ditunjukkan dalam artikel ini berfungsi dengan implementasi find
. lainnya , tetapi jika Anda mencoba perintah pada platform selain Linux dan mendapatkan hasil yang tidak diharapkan, coba unduh dan instal versi GNU.
Menemukan file berdasarkan nama
Anda dapat menemukan file berdasarkan nama filenya dengan memberikan nama file lengkap atau bagian dari nama file menggunakan ekspresi reguler. find
perintah memerlukan jalur ke direktori yang ingin Anda cari, opsi untuk menentukan atribut apa yang Anda cari (misalnya, -name
untuk nama file peka huruf besar/kecil), dan kemudian string pencarian. Secara default, string pencarian Anda diperlakukan secara harfiah:find
perintah mencari nama file yang persis seperti string yang Anda masukkan di antara tanda kutip kecuali jika Anda menggunakan sintaks ekspresi reguler.
Asumsikan direktori Documents Anda berisi empat file:Foo
, foo
, foobar.txt
, dan foo.xml
. Berikut pencarian literal untuk file dengan nama "foo":
$ find ~ -name "foo"
/home/tux/Documents/examples/foo
Anda dapat memperluas pencarian Anda dengan membuatnya peka huruf besar/kecil dengan -iname
pilihan:
$ find ~ -iname "foo"
/home/tux/Documents/examples/foo
/home/tux/Documents/examples/Foo
Wildcard
Anda dapat menggunakan karakter wildcard shell dasar untuk memperluas pencarian Anda. Misalnya, tanda bintang (*
) mewakili sejumlah karakter:
$ find ~ -iname "foo*"
/home/tux/Documents/examples/foo
/home/tux/Documents/examples/Foo
/home/tux/Documents /examples/foo.xml
/home/tux/Documents/examples/foobar.txt
Tanda tanya (?
) mewakili satu karakter:
$ find ~ -iname "foo*.???"
/home/tux/Documents/examples/foo.xml
/home/tux/Documents/examples/foobar.txtIni bukan sintaks ekspresi reguler, jadi titik (
.
) mewakili titik literal dalam contoh ini.Ekspresi reguler
Anda juga dapat menggunakan ekspresi reguler. Seperti halnya
-iname
dan-name
, ada opsi peka huruf besar/kecil dan tidak peka huruf besar/kecil. Berbeda dengan-name
dan-iname
pilihan, meskipun,-regex
dan-iregex
pencarian diterapkan ke seluruh jalur , bukan hanya nama file. Itu berarti jika Anda mencarifoo
, Anda tidak mendapatkan hasil karenafoo
tidak cocok dengan/home/tux/Documents/foo
. Sebagai gantinya, Anda harus menelusuri seluruh jalur, atau menggunakan urutan karakter pengganti di awal string Anda:$ find ~ -iregex ".*foo"
/home/tux/Documents/examples/foo
/home/tux/Documents/examples/FooMenemukan file yang dimodifikasi dalam seminggu terakhir
Untuk menemukan file yang terakhir Anda modifikasi minggu lalu, gunakan
-mtime
opsi bersama dengan jumlah hari (negatif) di masa lalu:$ find ~ -mtime -7
/home/tux/Documents/examples/foo
/home/tux/Documents/examples/Foo
/home/tux/Documents/examples /foo.xml
/home/tux/Documents/examples/foobar.txtTemukan file yang dimodifikasi dalam rentang hari
Anda dapat menggabungkan
-mtime
pilihan untuk menemukan file dalam rentang hari. Untuk-mtime
pertama argumen, berikan jumlah hari terbaru Anda dapat memodifikasi file, dan untuk yang kedua, berikan jumlah hari terbesar. Misalnya, pencarian ini mencari file dengan waktu modifikasi lebih dari satu hari di masa lalu, tetapi tidak lebih dari tujuh:$ find ~ -mtime +1 -mtime -7
Membatasi pencarian menurut jenis file
Mengoptimalkan hasil
find
adalah hal yang umum dengan menentukan jenis file yang Anda cari. Anda tidak boleh menggunakan opsi ini jika Anda tidak yakin apa yang Anda cari, tetapi jika Anda tahu Anda sedang mencari file dan bukan direktori, atau direktori tetapi bukan file, maka ini bisa menjadi pilihan yang bagus. filter untuk digunakan. Pilihannya adalah-type
, dan argumennya adalah kode huruf yang mewakili beberapa jenis data yang berbeda. Yang paling umum adalah:
d
- direktorif
- berkasl
- tautan simboliss
- soketp
- pipa bernama (digunakan untuk FIFO)b
- blok khusus (biasanya penunjukan hard drive)
Berikut beberapa contohnya:
$ find ~ -type d -name "Doc*"
/home/tux/Documents
$ find ~ -type f -name "Doc*"
/home/tux/ Downloads/10th-Doctor.gif
$ find /dev -type b -name "sda*"
/dev/sda
/dev/sda1
Sesuaikan cakupan
find
perintah adalah rekursif secara default, artinya ia mencari hasil di direktori direktori yang terdapat dalam direktori (dan seterusnya). Ini bisa menjadi luar biasa dalam sistem file besar, tetapi Anda dapat menggunakan -maxdepth
opsi untuk mengontrol seberapa dalam ke dalam struktur folder yang ingin Anda find
untuk turun:
$ find /usr -iname "*xml" | wc -l
15588
$ find /usr -maxdepth 2 -iname "*xml" | wc -l
15
Anda dapat mengatur kedalaman rekursi minimum secara bergantian dengan -mindepth
:
$ find /usr -mindepth 8 -iname "*xml" | wc -l
9255
Unduh lembar contekan
Artikel ini hanya mencakup fungsi dasar find
. Ini adalah alat yang hebat untuk mencari melalui sistem Anda, tetapi juga merupakan front-end yang sangat berguna untuk perintah Paralel yang kuat. Ada banyak alasan untuk mempelajari find
, jadi unduh find
gratis kami lembar contekan untuk membantu Anda mempelajari lebih lanjut tentang perintah tersebut.