Bagaimana saya bisa menggunakan perintah find lebih efisien?

15

Saya ingin tahu, apa cara terbaik untuk menggunakan perintah find secara efisien?

Saya biasanya menggunakan, find [filename] [dir]yang memberi saya daftar panjang nama file, tidak ada yang terkait dengan pencarian saya.

Saya hanya perlu menemukan satu file di direktori tertentu. Apa perintah untuk itu?

Sam007
sumber

Jawaban:

24

Anda biasanya memberi tahu menemukan tempat untuk memulai pencarian, dan apa yang harus dicari. Jadi sintaks untuk jalur untuk mencari dan apa yang sebenarnya Anda coba temukan berbeda.

Untuk kasus penggunaan yang Anda sebutkan, anggap Anda ingin menemukan passwdfile di /etc:

find /etc/ -name passwd

Anda mengatakan "mulai dll, mencari file yang nama adalahpasswd

jika Anda tidak menentukan kriteria (atau "opsi" dalam bahasa cari), apa yang ditemukan adalah, itu dimulai di jalur (atau jalur) yang Anda tentukan, dan menemukan semua file dan direktori di bawahnya, secara rekursif. Jadi opsi "filter" file-file itu untuk mempersempit apa yang Anda cari.

Temukan semua file JPG di mana saja di sistem file Anda:

find / -name "*jpg" 

Disarankan menggunakan kutipan dalam opsi Anda karena jika tidak ekspansi shell dapat menyebabkan Anda sakit kepala.

Temukan file pdf, apa pun kasusnya, dalam Dokumen atau Unduhan:

find Documents/ Downloads/ -iname "*pdf"

Jika Anda melakukannya man finddan gulir ke bawah untuk TEST, Anda akan menemukan semua "kriteria" yang dapat digunakan untuk mempersempit pencarian Anda. Anda dapat mencari file dengan nama file tertentu, dimiliki oleh pengguna atau grup tertentu, memiliki izin file tertentu, dari jenis tertentu (mis. Hanya -type dakan menemukan direktori, sementara -type fakan menemukan hanya file biasa, tidak termasuk direktori), file lebih baru atau lebih tua dari jumlah hari (atau menit) tertentu, file yang kosong, yang dapat dieksekusi, dan sebagainya.

Di halaman manual find, Anda juga akan menemukan bagian yang disebut TINDAKAN, ini bisa mengikuti kriteria dan akan dipicu oleh file apa pun yang cocok dengan semua kriteria. Jadi Anda dapat findmelakukan hal-hal seperti menghapus file yang ditemukannya, menjalankan perintah sewenang-wenang pada mereka, dan sebagainya.

Tapi tentu saja sintaks dasarnya tetap:

find [starting path(s)] [conditions or criteria]
roadmr
sumber
terima kasih ini bekerja dengan baik. Saya benar-benar bingung dan ini membantu meluruskan segalanya
Sam007
1
+1 Ini adalah pengantar yang bagus untuk ditemukan, dan juga mengajarkan OP bagaimana menemukan informasi lebih lanjut.
lgarzo