GNU/Linux >> Belajar Linux >  >> Linux

Temukan Perintah di Linux (Temukan File dan Direktori)

find command adalah salah satu alat paling kuat di gudang administrator sistem Linux. Ini mencari file dan direktori dalam hierarki direktori berdasarkan ekspresi yang diberikan pengguna dan dapat melakukan tindakan yang ditentukan pengguna pada setiap file yang cocok.

Anda dapat menggunakan find perintah untuk mencari file dan direktori berdasarkan izin, jenis, tanggal, kepemilikan, ukuran, dan lainnya. Itu juga dapat dikombinasikan dengan alat lain seperti grep atau sed .

find Sintaks Perintah #

Sintaks umum untuk find perintahnya adalah sebagai berikut:

find [options] [path...] [expression]
  • options atribut mengontrol perlakuan tautan simbolik, opsi debug, dan metode pengoptimalan.
  • Jalur path... atribut mendefinisikan direktori awal atau direktori tempat find akan mencari file.
  • expression atribut terdiri dari opsi, pola penelusuran, dan tindakan yang dipisahkan oleh operator.

Untuk mencari file dalam direktori, pengguna menjalankan find perintah harus memiliki izin baca pada direktori tersebut.

Mari kita lihat contoh berikut:

find -L /var/www -name "*.js"
  • Opsi -L (opsi) memberitahu find perintah untuk mengikuti tautan simbolis.
  • /var/www (path…) menentukan direktori yang akan dicari.
  • (ekspresi) -name "*.js memberitahu find untuk mencari file yang diakhiri dengan .js (File JavaScript).

Temukan File berdasarkan Nama #

Menemukan file berdasarkan nama mungkin adalah penggunaan paling umum dari find memerintah. Untuk menemukan file berdasarkan namanya, gunakan -name pilihan diikuti dengan nama file yang Anda cari.

Misalnya, untuk mencari file bernama document.pdf di /home/linuxize direktori, Anda akan menggunakan perintah berikut:

find /home/linuxize -type f -name document.pdf

Untuk menjalankan pencarian peka huruf besar/kecil, ubah -name opsi dengan -iname :

find /home/linuxize -type f -iname document.pdf

Perintah di atas akan cocok dengan “Document.pdf”, “DOCUMENT.pdf” ..etc.

Temukan File menurut Ekstensi #

Mencari file dengan ekstensi sama dengan mencari file berdasarkan nama. Misalnya, untuk menemukan semua file yang diakhiri dengan .log.gz di dalam /var/log/nginx direktori, Anda akan mengetik:

find /var/log/nginx -type f -name '*.log.gz'

Penting untuk disebutkan bahwa Anda harus mengutip pola atau menghindari tanda bintang * simbol dengan garis miring terbalik \ agar tidak ditafsirkan oleh shell saat Anda menggunakan karakter wildcard.

Untuk menemukan semua file yang tidak cocok dengan regex *.log.gz Anda dapat menggunakan -not pilihan. Misalnya, untuk menemukan semua file yang tidak diakhiri dengan *.log.gz Anda akan menggunakan:

find /var/log/nginx -type f -not -name '*.log.gz'

Temukan File menurut Jenis #

Terkadang Anda mungkin perlu mencari jenis file tertentu seperti file biasa, direktori, atau symlink. Di Linux, semuanya adalah file.

Untuk mencari file berdasarkan jenisnya, gunakan -type opsi dan salah satu deskriptor berikut untuk menentukan jenis file:

  • f :file biasa
  • d :direktori
  • l :tautan simbolis
  • c :perangkat karakter
  • b :memblokir perangkat
  • p :pipa bernama (FIFO)
  • s :soket

Misalnya, untuk menemukan semua direktori di direktori kerja saat ini, Anda akan menggunakan:

find . -type d

Contoh umum adalah mengubah izin file situs web secara rekursif menjadi 644 dan izin direktori ke 755 menggunakan chmod perintah:

find /var/www/my_website -type d -exec chmod 0755 {} \;find /var/www/my_website -type f -exec chmod 0644 {} \;

Temukan File menurut Ukuran #

Untuk menemukan file berdasarkan ukuran file, berikan -size parameter bersama dengan kriteria ukuran. Anda dapat menggunakan sufiks berikut untuk menentukan ukuran file:

  • b :blok 512-byte (default)
  • c :byte
  • w :kata dua byte
  • k :Kilobyte
  • M :Megabyte
  • G :Gigabyte

Perintah berikut akan menemukan semua file dengan tepat 1024 byte di dalam /tmp direktori:

find /tmp -type f -size 1024c

find perintah juga memungkinkan Anda untuk mencari file yang lebih besar atau lebih kecil dari ukuran yang ditentukan.

Dalam contoh berikut, kami mencari semua file kurang dari 1MB di dalam direktori kerja saat ini. Perhatikan minus - simbol sebelum nilai ukuran:

find . -type f -size -1M

Jika Anda ingin mencari file dengan ukuran lebih besar dari 1MB , maka Anda perlu menggunakan tanda tambah + simbol:

find . -type f -size +1M

Anda bahkan dapat mencari file dalam rentang ukuran. Perintah berikut akan menemukan semua file antara 1 dan 2MB :

find . -type f -size +1M -size 21M

Temukan File menurut Tanggal Modifikasi #

find perintah juga dapat mencari file berdasarkan modifikasi terakhir, akses, atau perubahan waktu.

Sama seperti saat menelusuri menurut ukuran, gunakan simbol plus dan minus untuk “lebih besar dari” atau “kurang dari”.

Katakanlah beberapa hari yang lalu, Anda memodifikasi salah satu file konfigurasi dovecot, tetapi Anda lupa yang mana. Anda dapat dengan mudah memfilter semua file di bawah /etc/dovecot/conf.d direktori yang diakhiri dengan .conf dan telah diubah dalam lima hari terakhir:

find /etc/dovecot/conf.d -name "*.conf" -mtime 5

Berikut adalah contoh lain dari memfilter file berdasarkan tanggal modifikasi menggunakan -daystart pilihan. Perintah di bawah ini akan menampilkan semua file di /home direktori yang dimodifikasi 30 atau beberapa hari yang lalu:

find /home -mtime +30 -daystart

Temukan File dengan Izin #

-perm opsi memungkinkan Anda untuk mencari file berdasarkan izin file.

Misalnya, untuk menemukan semua file dengan izin persis 775 di dalam /var/www/html direktori, Anda akan menggunakan:

find /var/www/html -perm 644

Anda dapat mengawali mode numerik dengan minus - atau garis miring / .

Saat memangkas / digunakan sebagai awalan, maka setidaknya satu kategori (pengguna, grup, atau lainnya) harus memiliki setidaknya bit masing-masing yang disetel agar file cocok.

Perhatikan contoh perintah berikut:

find . -perm /444

Perintah di atas akan mencocokkan semua file dengan izin baca yang ditetapkan untuk pengguna, grup, atau lainnya.

Jika minus - digunakan sebagai awalan, maka agar file cocok, setidaknya bit yang ditentukan harus ditetapkan. Perintah berikut akan mencari file yang memiliki izin baca dan tulis untuk pemilik dan grup dan dapat dibaca oleh pengguna lain:

find . -perm -664

Temukan File menurut Pemilik #

Untuk menemukan file yang dimiliki oleh pengguna atau grup tertentu, gunakan -user dan -group pilihan.

Misalnya, untuk mencari semua file dan direktori milik pengguna linuxize , Anda akan menjalankan:

find / -user linuxize

Berikut adalah contoh dunia nyata. Katakanlah Anda ingin mencari semua file milik pengguna www-data dan ubah kepemilikan file yang cocok dari www-data ke nginx :

find / -user www-data -type f  -exec chown nginx {} \;

Cari dan Hapus File #

Untuk menghapus semua file yang cocok, tambahkan -delete opsi ke akhir ekspresi kecocokan.

Pastikan Anda menggunakan opsi ini hanya jika Anda yakin bahwa hasilnya cocok dengan file yang ingin Anda hapus. Itu selalu merupakan ide yang baik untuk mencetak file yang cocok sebelum menggunakan -delete pilihan.

Misalnya, untuk menghapus semua file yang diakhiri dengan .temp dari /var/log/ , Anda akan menggunakan:

find /var/log/ -name `*.temp` -delete
Gunakan -delete pilihan dengan sangat hati-hati. find perintah dievaluasi sebagai ekspresi dan jika Anda menambahkan -delete opsi pertama, perintah akan menghapus semua yang ada di bawah titik awal yang Anda tentukan.

Ketika datang ke direktori, find hanya dapat menghapus direktori kosong, sama seperti rmdir .

Kesimpulan #

Kami telah menunjukkan cara menggunakan find perintah dengan berbagai opsi dan kriteria.

Artikel ini akan memberi Anda pemahaman mendasar tentang cara menemukan file di sistem Linux Anda. Anda juga dapat mengunjungi find halaman manualdan baca tentang semua opsi hebat lainnya dari find perintah.

Jika Anda memiliki pertanyaan atau komentar, silakan tinggalkan komentar di bawah.


Linux
  1. Temukan file dan direktori di Linux dengan perintah find

  2. Cara Mengetahui Direktori dan File Teratas (Ruang Disk) di Linux

  3. Linux Hapus File dan Direktori

  1. Temukan File dan Direktori di Linux Seperti Profesional

  2. Cara Menghapus File dan Direktori di Linux dari Command Line

  3. Salin file &direktori di Linux

  1. Cara Menghapus Direktori dan File Menggunakan Linux

  2. Temukan file dan direktori terbesar di Linux

  3. Cara Menemukan dan Menghapus Direktori dan File Kosong di Linux