40 Contoh Terbaik Perintah Find di Linux

Perintah find Linux adalah alat canggih yang memungkinkan administrator sistem menemukan dan mengelola file dan direktori berdasarkan berbagai kriteria pencarian. Itu dapat menemukan direktori dan file berdasarkan nama mereka, jenisnya, atau ekstensi, ukuran, izin, dll.

Selain menemukan file dan direktori, menggabungkan perintah find dengan yang lain memungkinkan Anda mengambil tindakan terhadap hasilnya. Menambahkan opsi -exec memungkinkan sysadmin menjalankan perintah eksternal dan melakukan tindakan seperti menyalin, memindahkan, menghapus, atau mengubah izin file yang cocok dengan kriteria yang ditentukan seperti ukuran, nama, dll.

Pada artikel ini, kita akan mulai dengan menjelaskan perintah dasar Linux find dengan contoh. Ini akan menunjukkan cara menemukan file dan direktori. Kami kemudian akan menunjukkan kepada Anda bagaimana menggunakan opsi -exec untuk bertindak pada file atau direktori berdasarkan ukuran, izin, dll.

Sintaks umum untuk perintah find adalah

find {path} {name -of-file or dir-to-search} {action-to-take}

Di mana,

  • path menentukan direktori.
  • name-of file or dir-to-search : Nama file atau direktori yang akan dicari
  • tindakan-untuk-ambil: seperti menyalin, menghapus, memindahkan, dll.

Dalam tutorial ini, kami akan menjelaskan cara mencari file dan direktori yang cocok dengan pola yang ditentukan. Kami juga akan melihat bagaimana melakukan tindakan pada file atau direktori yang ditemukan oleh perintah find. Panduan ini didasarkan pada Ubuntu tetapi berlaku untuk sebagian besar distribusi dan versi Linux.

Daftar isi

Temukan file dan Direktori

Temukan file tertentu berdasarkan nama atau ekstensi

Untuk mencari file tertentu, jalankan perintah berikut dari root (/). Perintah berisi nama persis untuk file yang Anda cari.

find . -name file22.txt

Keluaran

./test/file22.txt
./sales/file22.txt

Harap perhatikan bahwa hasil menyertakan jalur. Ini penting jika Anda tidak mengetahui direktori tempat file berada, atau jika file berada di lebih dari satu tempat.

Anda juga dapat mencari file di direktori lain saat masih berada di lokasi saat ini. Dalam hal ini, Anda perlu menyediakan jalur untuk direktori tempat Anda ingin mencari.

find ./test -name file22.txt

Mencari file tertentu di direktori lain

Dalam kasus kami, kami akan mencari semua yang dimulai dengan file surat di direktori pengujian.

find ./test -name file*

Keluaran

./test/file22.txt
./test/file30.doc
./test/file1.txt
./test/file5,doc

Cari file dengan ekstensi

Untuk menemukan file di Linux dengan ekstensi tertentu, tambahkan ke perintah.

find . -name *.txt

Keluaran

./test/subtest/subfil.txt
./test/file22.txt
./test/file1.txt
./home1/files32.txt
./home2/file22.txt
./qa/tags.txt

Temukan file dan direktori berdasarkan nama

Gunakan perintah di bawah ini untuk mencari file dan direktori yang dimulai dengan huruf qa. Di komputer kami, kami memiliki file qatree.txt dan qa.txt serta direktori dengan nama qa.

Jika kita menjalankan perintah;

find ./ -name "qa*"

Ini mengembalikan output berikut

./test/qatree.pdf
./test/qa.txt
./home/qa

Perintah mengembalikan file dan direktori yang cocok dengan kriteria pencarian. Untuk menemukan file atau direktori saja, Anda perlu menentukan ini di perintah.

  Cara memainkan Borderlands 2 di Linux

Temukan file atau direktori saja

Untuk file saja, gunakan sakelar tipe f.

File saja

find ./ -type f -name "qa*"

Keluaran

./test/qatree.pdf
./test/qa.txt

Direktori saja

Tambahkan opsi tipe d untuk mencari direktori saja.

find ./ -type d -name "qa*"

Keluaran

./home/qa

Perintah pencarian yang tidak peka huruf besar-kecil

Semua pencarian dengan -name switch sensitif huruf dan tidak akan memberikan hasil dengan huruf kapital. Untuk mendapatkan semua kasus, gunakan opsi -iname.

find ./ -iname "qa*"

Keluaran

./test/qatree.pdf
./test/qa.txt
./test/QAtest.txt
./home/qa

Cari file dari beberapa direktori

Untuk menemukan file di direktori yang berbeda, tambahkan jalurnya di perintah. Dalam kasus kami, kami akan memeriksa direktori pengujian dan numerik.

find ./test ./numeric -name file22.txt -type f

Keluaran

./test/file22.txt
/root/numeric/file22.txt

Temukan banyak file dengan ekstensi berbeda dari semua direktori

Anda dapat menggunakan perintah find untuk mencari beberapa file yang berbagi ekstensi berbeda seperti *.doc, *.txt *.pdf, dll. Ini dapat dilakukan secara terpisah, satu ekstensi pada satu waktu, atau hanya menggunakan satu perintah yang mencakup semua ekstensi yang diinginkan.

Temukan . -ketik f ( -nama “*.txt” -o -nama “*.pdf” -o -nama “*.doc” )

keluaran

./test/subtest/subfil.txt
./test/qatree.pdf
./test/file22.txt
./test/qa.txt
./test/file30.doc
./books/acro.pdf
./data1/FILE22.txt
./docs/files32.txt

Temukan file yang berisi teks tertentu

Terkadang, Anda ingin mengakses file yang berisi teks tertentu tetapi tidak dapat mengingat nama file atau lokasinya. Perintah ini memungkinkan Anda untuk menemukan semua file yang berisi teks target Anda.

Untuk mencari semua file yang mengandung kata hyperconvergence”, gunakan;

find / -type f -exec grep -l -i "hyperconvergence" {} ;

Keluaran

/root/numeric/hci
/root/HCIP

Opsi –i memungkinkan perintah untuk mengabaikan kasus dan akan menemukan teks apakah dikapitalisasi atau tidak yaitu hyperconvergence, Hyperconvergence , dll.

Untuk mencari file di direktori tertentu, cukup tambahkan ke perintah

find ./numeric -type f -exec grep -l -i "hyperconvergence" {} ;

Keluaran

./numeric/hci

Jelajahi lebih banyak contoh perintah grep.

Temukan File dan Direktori Berdasarkan Ukuran

Anda dapat menemukan semua file atau direktori yang lebih kecil, sama atau lebih besar dari ukuran tertentu, dalam rentang tertentu atau kosong. Gunakan format ukuran yang sesuai tergantung pada jenis file atau direktori yang Anda cari.

Pilihan ukuran meliputi;

c-byte

k – kilobyte

M – Megabita

G – Gigabyte

Temukan file dengan ukuran tertentu – sama dengan 30MB

Untuk Cari temukan semua file 30MB

find / -size 30M

Temukan file yang lebih besar dari ukuran yang ditentukan

find -size +2M

Keluaran

. /Downloads/ubuntu18043.iso 
./.cache/pip/http/6/e/3/8/3/6e38383f41850c3e5705d48116bc52f81b92a80500f414305057 7a9c

Temukan file kurang dari 10MB di direktori saat ini

find . -type f -size -10M

Temukan file dengan ukuran antara 100-200MB

Saat mencari file dalam rentang tertentu seperti antara 100 dan 200 MB

find / -size +100M -size -200M

Cari direktori yang lebih besar dari 20kb

temukan / -tipe d -ukuran +20k

Temukan file dan direktori kosong.

File

temukan ./ -tipe f -ukuran 0

atau

find ./ -type f –empty

Direktori

find ./ -type d –empty

Temukan file berdasarkan usia atau waktu modifikasi

Temukan file yang lebih lama dari n hari

find /path/ -type f -name '*.txt' -mtime +8

-mtime +8 akan mencari file txt yang lebih lama dari 8 hari.

Berdasarkan tanggal modifikasi

Ini akan mencari file yang diubah dalam 17 jam terakhir

find . -mtime -17 -type f 

Mencari direktori yang diubah dalam 10 hari terakhir

find . -mtime -10 -type d 

Temukan file berdasarkan akses atau modifikasi

Temukan file berdasarkan tanggal atau waktu diakses. Ini memungkinkan Anda untuk melihat file yang telah atau belum diakses dalam jangka waktu tertentu.

Untuk melihat file yang belum diakses dalam 10 hari terakhir di direktori home.

find /home -atime +10

File diakses tepat 10 hari yang lalu

find /home -atime 10

Diakses dalam 10 hari terakhir

find /home -atime -10

Temukan file yang dimodifikasi dalam n hari terakhir

Anda juga dapat mencari file di direktori /home yang dimodifikasi dalam 10 hari terakhir menggunakan perintah;

find /home -mtime -10 

Temukan file yang dimodifikasi dalam jangka waktu tertentu.

Misalnya, semua file yang diubah antara 6 dan 15 hari yang lalu di direktori home.

find /home -type f -mtime +6 -mtime -15

File dan direktori diakses dalam 10 menit terakhir

Untuk menemukan file yang diakses dalam 10 menit terakhir, gunakan opsi -amin.

find . -amin -10 -type f

Keluaran

./.bash_history
./[email protected]:~#

Direktori diakses dalam 10 menit terakhir

find . -amin -10 -type d

Temukan file yang cocok dengan izin tertentu

Sintaksis

$ find -perm mode

Di mana mode adalah izin yang berupa angka seperti 644, 655, 700, 777, dll, atau huruf seperti u=x, a=r+x, dll.

  Cara Menggunakan BleachBit di Linux

Anda dapat menentukan mode dengan tiga cara berikut.

  • Tanpa awalan saat Anda ingin mencari file dengan izin persis yang ditentukan.
  • Dengan “-” untuk file dengan setidaknya izin yang ditentukan. Ini mengembalikan file dengan izin yang ditentukan serta tambahan yang lebih tinggi.
  • Menggunakan “/” membutuhkan menentukan pemilik atau grup dengan izin untuk file tersebut.
  • Temukan file dengan izin 777

    find -perm 777

    Keluaran

    ./file1

    Temukan file dengan setidaknya 766
    temukan -perm -766

    Keluaran

    ./file2
    ./file1

    Perintah mencari semua file di mana

    • Pemilik file memiliki izin baca/tulis/eksekusi.
    • Grup memiliki izin baca/tulis
    • Yang lain memiliki izin baca/tulis

    Dengan demikian, ia mengembalikan dua file yang memenuhi kriteria ini – file1 dan file2. File tidak perlu memiliki izin 766 yang tepat dan dapat memiliki izin tambahan selama tetapi harus memiliki setidaknya yang ditentukan.

    Temukan file yang dapat ditulis oleh pemiliknya

    Kami sekarang akan menggunakan “/” untuk mencari file yang dapat ditulis oleh pemiliknya, atau grup, atau orang lain.

    find -perm /222
    .
    ./file2
    ./file3
    ./file1

    Di atas mencari file yang dapat ditulis oleh pemilik atau grupnya.
    Ini mengembalikan file yang dapat ditulis oleh salah satunya tetapi tidak harus keduanya. Untuk melihat file, di mana keduanya memiliki izin yang dapat ditulisi, gunakan awalan –.

    find -perm -220

    Keluaran

    ./file2
    ./file1

    Temukan file yang dimiliki oleh pengguna

    Temukan semua file yang dimiliki oleh Jack

    find /home -user jack

    Keluaran

    /home/jack
    /home/jack/examples.desktop
    /home/jack/.gnupg
    /home/jack/.gnupg/private-keys-v1.d
    /home/jack/ans.cgi

    Temukan file tertentu yang dimiliki oleh pengguna

    Temukan semua file teks yang dimiliki oleh Jack

    find /home -user jack -iname "*.txt"

    Keluaran

    /home/jack/docs/file32.txt

    Temukan dan daftarkan file dan direktori beserta izinnya

    find -name "*.conf" | ls -l

    Keluaran

    total 120
    drwxr-xr-x 2 root root 4096 Dec 31 13:19 backup2
    drwxr-xr-x 2 root root 4096 Jan 4 11:57 Desktop
    drwxr-xr-x 2 root root 4096 Dec 31 11:50 Documents
    drwxr-xr-x 2 root root 4096 Dec 31 12:27 Downloads
    -rw-r--r-- 1 root root 0 Jan 4 12:02 file22.doc
    drwxr-xr-x 2 root root 4096 Jan 4 12:14 file23
    -rw-r--r-- 1 root root 0 Jan 4 12:23 file23.txt

    Temukan dan tindak lanjuti hasilnya

    Di bagian ini, kita akan melihat bagaimana Anda dapat menindaklanjuti file yang cocok dengan pola yang ditentukan dalam perintah find.

    Temukan file dan ubah izin

    Temukan dan ubah izin jenis file tertentu. Dalam kasus kami, kami akan bekerja dengan file PHP dengan izin berbeda seperti yang ditunjukkan di bawah ini.

    [email protected]:~/ver$ ls -la
    
    total 8
    drwxrwxr-x 2 jack jack 4096 Jan 3 14:11 .
    drwxr-xr-x 8 jack jack 4096 Jan 3 14:05 ..
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 ans.php
    -rw-rw-r-- 1 jack jack 0 Jan 3 14:11 base.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 query.php
    -rw-rw-r-- 1 jack jack 0 Jan 3 14:11 qust.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 text.php
    -rw-rw-r-- 1 jack jack 0 Jan 3 14:11 vary.php

    Kami sekarang akan mencari semua file PHP (di atas) dan mengganti izinnya dengan 755

    find ver -name "*.php" -type f -exec chmod 755 {} ;

    Perintah mencari file PHP di direktori ver dan kemudian menetapkan izinnya ke 755 (rwxr-xr-x)

    Hasil

    [email protected]:~/ver$ ls -la
    total 8
    drwxrwxr-x 2 jack jack 4096 Jan 3 14:11 .
    drwxr-xr-x 8 jack jack 4096 Jan 3 14:05 ..
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 ans.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:11 base.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 query.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:11 qust.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:06 text.php
    -rwxr-xr-x 1 jack jack 0 Jan 3 14:11 vary.php

    Temukan dan ubah izin file dan direktori

    Temukan file dengan izin 644 dan ubah agar memiliki izin 655

    find . -type f -perm 644 -exec chmod 655 {} ;

    Anda juga dapat mencari direktori dengan izin 644 dan menggantinya dengan 755.

    find . -type d -perm 644

    Keluaran

    ./docs   

    Folder docs memiliki 644 izin

    drwxrwxr-x 2 jack jack 4096 Jan 3 12:45 docs

    Untuk menyetelnya ke 755, kami menjalankan

    find . -type d -perm 644 -exec chmod 755 {} ;

    Sekarang kita bisa mengecek lagi untuk melihat apa sebenarnya 755

    find . -type d -perm 755

    Keluaran
    .
    ./dokumen

    Dari atas kita dapat melihat direktori root dan docs memiliki izin 755.

    Perintah Ls –la memberikan detail berikut

    drwxr-xr-x 2 jack jack 4096 Jan 3 12:45 docs

    Temukan dan salin file atau direktori

    Temukan dan salin file tertentu ke direktori

    Perintah di bawah ini akan menemukan file file22.txt dan menyalinnya ke direktori ~/tmp/images.

    find -iname file22.txt -exec cp {} ~/tmp/images ;

    Temukan dan salin satu jenis file ke direktori

    Untuk menemukan file seperti gambar dengan ekstensi jpg di direktori saat ini dan menyalinnya ke lokasi lain seperti folder gambar, gunakan;

    find -iname '*.jpg' -exec cp {} ~/tmp/images ;

    Ini akan menemukan dan menyalin semua file jpg ke folder ~/tmp/images.

    Temukan dan salin satu file ke banyak direktori

    Temukan dan salin satu ke beberapa direktori.

    find ~/tmp/dir1/ ~/tmp/dir2/ $HOME/3/ -maxdepth 0 -exec cp ~/numeric/hci {} ;

    Ini akan menemukan file hci file dan menyalinnya ke tiga direktori /tmp/dir1/ /tmp/dir2/ dan $HOME/3/

      Cara Mengelola Grup Dan Pengguna Di Linux

    Temukan dan pindahkan file ke direktori lain

    Untuk memindahkan file yang dikenal dari direktori ke yang lain. Untuk memindahkan file universal.php;

    find ~/folder/ -type f -name universal.php -exec mv {} ~/numeric/ ;

    Cari dan pindahkan file dengan ekstensi tertentu ke folder lain

    find ~/numeric/ -type f -name '*.php' -exec mv {} ~/folder/ ;

    Temukan file tertentu dan pindah ke folder tertentu yang berbeda

    find -type f -name uni*.* -exec mv {} ~/unifiles/ ;

    Perintah mencari semua file dengan nama yang dimulai dengan uni dan memiliki ekstensi apapun. Kemudian memindahkannya ke direktori /unifiles/

    Temukan dan pindahkan file berdasarkan usia

    Temukan dan pindahkan file yang lebih lama dari hari yang ditentukan ke lokasi lain seperti arsip.

    find /path/ -type f -name '*.pdf' -mtime +20 -exec mv {} /backup1/ ;

    Ini akan mencari file pdf yang lebih lama dari 20 hari dan memindahkannya ke direktori backup1.

    Temukan dan hapus file dan direktori

    Sintaks untuk menemukan dan menghapus file atau direktori di direktori saat ini adalah

    Temukan . -tipe f -nama “file yang akan dihapus” -exec rm -f {} ; untuk menghapus file saja atau

    Temukan . -tipe d -nama “dir-to-delete” -exec rm -rf {} ; untuk menghapus direktori saja

    Temukan dan hapus file tertentu saja

    Untuk menemukan dan menghapus file yang dimulai dengan til, gunakan;

    find . -type f -name "til*" -exec rm {} ; 

    Untuk menemukan dan menghapus direktori yang dimulai dengan til

    find . -type d -name "til*" -exec rm {} ;

    Hapus file dan direktori

    find . -name "til*" -exec rm -rf {} ; 

    Ini akan menghapus file dan direktori yang dimulai dengan huruf til.

    Hapus dengan ekstensi

    Di bawah ini adalah bagaimana Anda dapat menemukan dan menghapus semua file txt di direktori saat ini. Ganti txt dengan ekstensi lain seperti bak, pdf atau lainnya yang ingin Anda hapus.

    find . -type f -name "*.txt" -exec rm -f {} ;

    Jika Anda ingin sistem meminta Anda untuk mengonfirmasi sebelum menghapus setiap file, tambahkan opsi -i seperti di bawah ini.

    find . -type f -name "*.txt" -exec rm -i {} ;

    Keluaran

    rm: remove regular empty file './File22.txt'? y
    rm: remove regular empty file './file22.txt'? y
    rm: remove regular empty file './file23.txt'?

    Secara default, -rm tidak akan menghapus direktori dan Anda perlu menggunakan opsi –r untuk memastikan penghapusan rekursif. Ini memastikan penghapusan direktori kosong dan yang berisi file. Opsi -f memaksa penghapusan dan digunakan untuk file dan direktori.

    Temukan dan hapus file yang lebih lama dari n hari

    Temukan dan hapus file cadangan yang lebih lama dari 20 hari dari direktori saat ini.

    find . -type f -name '*.bak' -mtime +20 -exec rm {} ;

    Ini akan menghapus semua file .bak yang lebih lama dari 20 hari.

    Cari dan hapus direktori saja

    Untuk menghapus direktori bernama dir22

    find . -type d -name dir22 -exec rm -rf {} ;

    Pastikan Anda cocok dengan nama direktori atau gunakan opsi -iname.

    find . -type d -iname Dir22 -exec rm -rf {} ;

    Menghapus Dir22 dan dir22

    Untuk mengonfirmasi sebelum dihapus, gunakan opsi -i.

    find . -type d -iname Dir22 -exec rm -rf -i {} ;

    Keluaran
    rm: hapus direktori ‘./Dir22’? n
    rm: hapus direktori ‘./dir22’? y

    Dalam kasus kita, kita mengetik n untuk direktori Dir22 yang tidak akan dihapus dan y untuk dir22 yang sekarang akan dihapus.

    Temukan dan hapus file kosong

    Anda dapat menggunakan salah satu dari perintah berikut untuk menemukan file kosong dan menghapusnya secara otomatis.

    find ./ -type f -size 0 -exec rm -f {} ;

    atau
    temukan ./ -tipe f -ukuran 0 | xargs rm -f
    atau
    temukan ./ -ketik f -ukuran 0 –hapus

    Temukan dan hapus direktori kosong

    Untuk menghapus direktori kosong kita akan menggunakan opsi d.

    find ./ -type d -empty -exec rmdir {} ;

    Alternatif lain adalah menggunakan hapus alih-alih hapus.

    find ./ -type d -empty -delete

    Harap perhatikan bahwa menghapus sistem atau file penting dari komputer Anda dapat merusak sistem operasi atau aplikasi atau menyebabkan hilangnya data penting Anda.

    Untuk menghindari penghapusan yang tidak disengaja, praktik terbaik adalah menggunakan akun pengguna non-root. Juga, pastikan bahwa Anda menghapus file yang benar yang tidak berguna dan Anda memiliki cadangan semua file data Anda untuk berjaga-jaga.

    Apa berikutnya?

    Lanjutkan dan coba perintah pencarian Linux di atas di lab atau lingkungan NON PRODUCTION Anda. Lihat apakah Anda dapat menggunakan beberapa untuk mengotomatiskan pembersihan sistem file dengan Crontab. Dan, untuk menguasai Linux, lihat ini kursus online.