Android

Cara menemukan file di linux menggunakan baris perintah

Tutorial menggunakan perintah dasar untuk membuka file (CentOS Bash Linux)

Tutorial menggunakan perintah dasar untuk membuka file (CentOS Bash Linux)

Daftar Isi:

Anonim

Perintah find adalah salah satu alat paling ampuh dalam arsenal administrator sistem Linux. Itu mencari file dan direktori dalam hirarki direktori berdasarkan pada ekspresi yang diberikan pengguna dan dapat melakukan tindakan yang ditentukan pengguna pada setiap file yang cocok.

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

Linux find Perintah Sintaks

Sintaks umum untuk perintah find adalah sebagai berikut:

find

  • Atribut options mengontrol perlakuan tautan simbolik, opsi debugging, dan metode optimisasi. Atribut path… menentukan direktori awal atau direktori tempat menemukan akan mencari file. Atribut expression terdiri dari opsi, pola pencarian, dan tindakan yang dipisahkan oleh operator.

Untuk mencari file dalam direktori, pengguna yang memohon perintah find perlu membaca izin pada direktori itu.

Mari kita lihat contoh berikut:

find -L /var/www -name "*.js"

  • Opsi -L (opsi) memberi tahu perintah find untuk mengikuti tautan simbolik. /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

Mencari file dengan nama mungkin merupakan penggunaan perintah find paling umum. Untuk menemukan file dengan menggunakan namanya, opsi -name mengikuti nama file yang Anda cari.

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

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

Untuk menjalankan pencarian case-insensitive, ubah opsi -name dengan -iname :

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

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

Temukan File dengan Ekstensi

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

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

Penting untuk menyebutkan bahwa ketika Anda menggunakan karakter wildcard, Anda harus mengutip polanya atau melarikan diri dari simbol asterisk * dengan backslash \ sehingga tidak bisa ditafsirkan oleh shell.

Untuk menemukan semua file yang tidak cocok dengan regex *.log.gz Anda dapat menggunakan opsi *.log.gz . 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 berdasarkan Jenis

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

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

  • f : file biasa d : direktori l : tautan simbolik c : perangkat karakter b : perangkat blok p : pipa bernama (FIFO) s : socket

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

find. -type d

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

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

Temukan File berdasarkan Ukuran

Untuk menemukan file berdasarkan ukuran file, berikan parameter -size 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 : Megabita G : Gigabita

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

find /tmp -type f -size 1024c

Perintah find juga memungkinkan Anda untuk mencari file yang lebih besar atau kurang dari ukuran yang ditentukan.

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

find. -type f -size -1M

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 berdasarkan Tanggal Modifikasi

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

Sama seperti saat mencari berdasarkan 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 direktori /etc/dovecot/conf.d yang diakhiri dengan .conf dan telah dimodifikasi dalam lima hari terakhir dengan:

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

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

find /home -mtime +30 -daystart

Temukan File dengan Izin

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

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

find /var/www/html -perm 644

Anda dapat mengawali mode numerik dengan minus - atau slash / .

Ketika slash / digunakan sebagai awalan, maka setidaknya satu kategori (pengguna, grup atau yang lain) harus memiliki setidaknya masing-masing bit yang ditetapkan untuk file yang cocok.

Pertimbangkan contoh perintah berikut:

find. -perm /444

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

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

find. -perm -664

Temukan File oleh Pemilik

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

Misalnya, untuk mencari semua file dan direktori yang dimiliki oleh pengguna linuxize , Anda akan menjalankan:

find / -user linuxize

Ini adalah contoh dunia nyata. Katakanlah Anda ingin menemukan semua file yang dimiliki oleh pengguna www-data dan mengubah kepemilikan file yang cocok dari www-data ke nginx :

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

Temukan dan Hapus File

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

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

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

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

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

Kesimpulan

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

Artikel ini harus memberi Anda pemahaman mendasar tentang cara mencari file di sistem Linux Anda. Anda juga dapat mengunjungi halaman manual find dan membaca tentang semua opsi kuat lainnya dari perintah find .

temukan terminal