Bagaimana cara Menggunakan find command di Linux? 40 Contoh Termasuk

Temuan ini adalah alat baris perintah yang kuat yang memungkinkan administrator sistem untuk menemukan dan mengelola file dan direktori berdasarkan berbagai kriteria pencarian. Itu dapat menemukan file dengan nama mereka, jenisnya, atau ekstensi, ukuran, izin, dll.


Selain mencari file dan direktori, menggabungkan perintah find dengan yang lain memungkinkan Anda untuk mengambil tindakan pada hasilnya. Menambahkan opsi -exec memungkinkan sysadmin untuk 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 find dasar dengan contoh. Ini akan menunjukkan kepada Anda bagaimana 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

temukan {path} {name -of-file atau dir-to-search} {action-to-take}

Dimana,

  • path menentukan direktori.
  • nama-file atau dir-to-search: Nama file atau direktori yang harus 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.

Contents

Temukan file dan Direktori

Temukan file spesifik berdasarkan nama atau ekstensi

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

Temukan . -nama file22.txt

Keluaran

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

Harap dicatat bahwa hasilnya termasuk jalur. Ini penting jika Anda tidak tahu direktori di mana file itu berada, atau ketika itu berada di lebih dari satu tempat.

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

temukan ./test -nama file22.txt

Mencari file tertentu di direktori lain

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

cari ./test -nama file *

Keluaran

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

Cari file dengan ekstensi

Untuk mencari file dengan ekstensi tertentu, tambahkan ke perintah.

Temukan . -nama * .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;

temukan ./ -nama "qa *"

Ini mengembalikan output berikut

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

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

Temukan file atau direktori saja

Hanya untuk file, gunakan sakelar tipe f.

Hanya file

temukan ./ -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

Case find case sensitive

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

temukan ./ -iname "qa *"

Keluaran

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

Cari file dari banyak direktori

Untuk menemukan file di direktori yang berbeda, tambahkan path mereka di perintah. Dalam kasus kami, kami akan memeriksa dalam 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 menemukan beberapa file yang berbagi ekstensi yang berbeda seperti * .doc, * .txt * .pdf, dll. Ini dapat dilakukan secara terpisah, satu ekstensi setiap kali, atau menggunakan hanya satu perintah yang mencakup semua ekstensi yang diinginkan.

Temukan . -type f (-name "*.txt" -o -nama "* .pdf" -o -nama "*.dokter" )

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 mengandung 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;

temukan / -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 menggunakan huruf besar atau besar, misalnya 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

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.

Opsi ukuran meliputi;

c – byte

k – kilobyte

M – Megabita

G – Gigabytes

Temukan file dengan ukuran tertentu – sama dengan 30MB

Untuk Pencarian, temukan semua file 30MB

temukan / -ukuran 30 juta

Temukan file lebih besar dari ukuran yang ditentukan

temukan -ukuran + 2 juta

Keluaran

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

Temukan file kurang dari 10MB di direktori saat ini

Temukan . -type f -ukuran -10M

Temukan file dengan ukuran antara 100-200MB

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

temukan / -ukuran + 100M -ukuran -200M

Cari direktori yang lebih besar dari 20kb

temukan / -type d -ukuran + 20k

Temukan file dan direktori kosong.

File

find ./ -type f -ukuran 0

atau

find ./ -type f –ty

Direktori

find ./ -type d –ty

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 dari 8 hari.

Menurut tanggal modifikasi

Ini akan mencari file yang dimodifikasi dalam 17 jam terakhir

Temukan . -mtime -17 -type f

Mencari direktori yang diubah dalam 10 hari terakhir

Temukan . -mtime -10 -type d

Temukan file berdasarkan akses atau modifikasi

Temukan file berdasarkan tanggal atau waktu yang diakses. Ini memungkinkan Anda untuk melihat file yang telah atau belum diakses dalam periode 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

temukan / home -atime -10

Temukan file yang dimodifikasi dalam n hari terakhir

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

temukan / home -mtime -10

Temukan file yang dimodifikasi dalam periode tertentu.

Misalnya, semua file 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.

Temukan . -amin -10 -jenis f

Keluaran

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

Direktori diakses dalam 10 menit terakhir

Temukan . -amin -10 -jenis d

Temukan file yang cocok dengan izin spesifik

Sintaksis

Mode $ find -perm

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

Anda dapat menentukan mode dalam tiga cara berikut berbeda.

  1. Tanpa awalan saat Anda ingin menemukan file dengan izin yang ditentukan.
  2. Dengan “-” untuk file dengan setidaknya izin yang ditentukan. Ini mengembalikan file dengan izin yang ditentukan serta tambahan lebih tinggi.
  3. Menggunakan “/” memerlukan menentukan pemilik atau grup dengan izin ke file.

Temukan file dengan izin 777

temukan -perm 777

Keluaran

./ file1

Temukan file dengan setidaknya 766
temukan -perma -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

Karena itu, ia mengembalikan dua file yang memenuhi kriteria ini – file1 dan file2. File-file tidak perlu memiliki izin 766 yang tepat dan dapat memiliki yang 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.

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

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

temukan -perm -220

Keluaran

./ file2
./ file1

Temukan file yang dimiliki oleh pengguna

Temukan semua file yang dimiliki oleh Jack

temukan / home -pakai 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 Jack

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

Keluaran

/home/jack/docs/file32.txt

Temukan dan daftarkan file dan direktori bersama dengan izinnya

temukan -nama "* .conf" | ls-l

Keluaran

total 120
drwxr-xr-x 2 root root 4096 31 Des 13:19 cadangan2
drwxr-xr-x 2 root root 4096 4 Jan 11:57 Desktop
drwxr-xr-x 2 root root 4096 31 Des 11:50 Dokumen
drwxr-xr-x 2 root root 4096 31 Des 31 12:27 Unduh
-rw-r – r– 1 root root 0 Jan 4 12:02 file22.doc
drwxr-xr-x 2 root root 4096 4 Jan 12:14 file23
-rw-r – r– 1 root root 0 Jan 4 12:23 file23.txt

Temukan dan lakukan hasilnya

Di bagian ini, kita akan melihat bagaimana Anda bisa bertindak pada 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.

[dilindungi email]: ~ / ver $ ls -la

total 8
drwxrwxr-x 2 jack jack 4096 3 Jan 14:11 .
jack drwxr-xr-x 8 4096 3 Jan 14:05 ..
-jack jack rwxr-xr-x 1 0 Jan 3 14:06 ans.php
-rw-rw-r– 1 jack jack 0 Jan 3 14:11 base.php
-jack jack rwxr-xr-x 1 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 0 0 3 Jan 14:06 text.php
-rw-rw-r– 1 jack jack 0 Jan 3 14:11 bervariasi.php

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

temukan ver -name "* .php" -ketik f -exec chmod 755 {};

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

Hasil

[dilindungi email]: ~ / ver $ ls -la
total 8
drwxrwxr-x 2 jack jack 4096 3 Jan 14:11 .
jack drwxr-xr-x 8 4096 3 Jan 14:05 ..
-jack jack rwxr-xr-x 1 0 Jan 3 14:06 ans.php
-rwxr-xr-x 1 jack 0 0 Jan 3 14:11 base.php
-jack jack rwxr-xr-x 1 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 0 0 3 Jan 14:06 text.php
-jack jack rwxr-xr-x 1 0 Jan 3 14:11 bervariasi.php

Temukan dan ubah izin file dan direktori

Temukan file dengan 644 izin dan ubahlah untuk memiliki 655 izin

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

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

Temukan . -tipe d -perma 644

Keluaran

./ docs

Folder dokumen memiliki 644 izin

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

Untuk mengaturnya ke 755, kita jalankan

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

Sekarang kita dapat memeriksa lagi untuk melihat apa sebenarnya 755

Temukan . -type d -perm 755

Keluaran
.
./ docs

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

Perintah Ls –la memberikan detail berikut

jack jack drwxr-xr-x 2 4096 3 Jan 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.

temukan -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 yang berbeda 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.

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

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

Temukan dan pindahkan file ke direktori lain

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

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

Cari dan pindahkan file dengan ekstensi tertentu ke folder lain

temukan ~ / numeric / -type f -name ‘* .php’ -exec mv {} ~ / folder /;

Temukan file tertentu dan pindah ke folder berbeda yang spesifik

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

Perintah mencari semua file dengan nama yang dimulai dengan uni dan memiliki ekstensi apa pun. Kemudian memindahkan mereka ke direktori / unifiles /

Temukan dan pindahkan file berdasarkan usia

Temukan dan pindahkan file yang lebih lama dari hari yang ditentukan ke lokasi yang berbeda 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 . -type f -name "file untuk dihapus" -exec rm -f {}; hanya menghapus file atau

Temukan . -type 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;

Temukan . -type f -name "sampai *" -exec rm {};

Untuk menemukan dan menghapus direktori yang dimulai dengan til

Temukan . -type d -nama "sampai *" -exec rm {};

Hapus file dan direktori

Temukan . -nama "sampai *" -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 yang lain yang ingin Anda hapus.

Temukan . -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.

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

Keluaran

rm: hapus file kosong biasa ‘./File22.txt’? y
rm: hapus file kosong biasa ‘./file22.txt’? y
rm: hapus file kosong biasa ‘./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.

Temukan . -type f -name ‘* .bak’ -mtime +20 -exec rm {};

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

Temukan dan hapus direktori saja

Untuk menghapus direktori yang disebut dir22

Temukan . -type d -nama dir22 -exec rm -rf {};

Pastikan Anda mencocokkan case nama direktori atau menggunakan opsi -iname.

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

Menghapus Dir22 dan dir22

Untuk mengkonfirmasi sebelum penghapusan, gunakan opsi -i.

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

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

Dalam kasus kami, kami 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 mencari file kosong dan menghapusnya secara otomatis.

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

atau
find ./ -type f -ukuran 0 | xargs rm -f
atau
find ./ -type f -ukuran 0 –delete

Temukan dan hapus direktori kosong

Untuk menghapus direktori kosong, kami akan menggunakan opsi d.

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

Alternatif lain adalah menggunakan delete sebagai ganti delete.

find ./ -type d -empty -delete

Harap dicatat 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. Selain itu, pastikan Anda menghapus file yang tepat yang tidak berguna dan bahwa Anda memiliki cadangan semua file data Anda untuk berjaga-jaga.

Apa berikutnya?

Silakan dan coba mereka di lingkungan lab atau NON PRODUKSI Anda. Lihat apakah Anda dapat menggunakan beberapa untuk mengotomatiskan pembersihan sistem file dengan Crontab. Dan, untuk menguasai Linux, lihat ini kursus online.

TAGS:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map