GNU/Linux >> Belajar Linux >  >> Linux

25 contoh sederhana perintah find Linux

Linux menemukan perintah

Linux menemukan perintah adalah perintah yang sangat berguna dan berguna untuk mencari file dari baris perintah. Ini dapat digunakan untuk menemukan file berdasarkan berbagai kriteria pencarian seperti izin, kepemilikan pengguna, tanggal/waktu modifikasi, ukuran dll. Dalam posting ini kita akan belajar menggunakan perintah find bersama dengan berbagai opsi yang didukungnya.

Perintah find tersedia di sebagian besar distro linux secara default sehingga Anda tidak perlu menginstal paket apa pun. Perintah find sangat penting untuk dipelajari, jika Anda ingin menjadi sangat produktif dengan baris perintah di linux.

Sintaks dasar dari perintah find terlihat seperti ini

$ find location comparison-criteria search-term

1. Daftar semua file di saat ini dan sub direktori

Perintah ini mencantumkan semua file di direktori saat ini serta subdirektori di direktori saat ini.

$ find
.
./abc.txt
./subdir
./subdir/how.php
./cool.php

Perintahnya sama seperti berikut

$ find .
$ find . -print

2. Cari direktori atau jalur tertentu

Perintah berikut akan mencari file di direktori pengujian di direktori saat ini. Mencantumkan semua file secara default.

$ find ./test
./test
./test/abc.txt
./test/subdir
./test/subdir/how.php
./test/cool.php

Perintah berikut mencari file berdasarkan namanya.

$ find ./test -name "abc.txt"
./test/abc.txt

Kami juga dapat menggunakan wildcard

$ find ./test -name "*.php"
./test/subdir/how.php
./test/cool.php

Perhatikan bahwa semua sub direktori dicari secara rekursif. Jadi ini adalah cara yang sangat ampuh untuk menemukan semua file dengan ekstensi tertentu.

Mencoba mencari direktori "/" yang merupakan root, akan mencari seluruh sistem file termasuk perangkat yang dipasang dan perangkat penyimpanan jaringan. Jadi berhati-hatilah. Tentu saja Anda dapat menekan Ctrl + c kapan saja untuk menghentikan perintah.

When specifying the directory ("./test" in this example), its fine to omit the trailing slash. However, if the directory is actually a symlink to some other location then you MUST specify the trailing slash for it to work properly (find ./test/ ...)

Abaikan kasusnya

Sering kali berguna untuk mengabaikan kasus saat mencari nama file. Untuk mengabaikan kasus ini, cukup gunakan opsi "iname" alih-alih opsi "nama".

$ find ./test -iname "*.Php"
./test/subdir/how.php
./test/cool.php
Its always better to wrap the search term (name parameter) in double or single quotes. Not doing so will seem to work sometimes and give strange results at other times.

3. Batasi kedalaman traversal direktori

Perintah find secara default menelusuri seluruh pohon direktori secara rekursif, yang memakan waktu dan sumber daya. Namun kedalaman travesal direktori dapat ditentukan. Misalnya kita tidak ingin turun lebih dari 2 atau 3 tingkat di sub direktori. Ini dilakukan dengan menggunakan opsi maxdepth.

$ find ./test -maxdepth 2 -name "*.php"
./test/subdir/how.php
./test/cool.php
$ find ./test -maxdepth 1 -name *.php
./test/cool.php

Contoh kedua menggunakan maxdepth 1, yang berarti kedalamannya tidak akan lebih rendah dari 1 level, baik hanya di direktori saat ini.

Ini sangat berguna ketika kita ingin melakukan pencarian terbatas hanya di direktori saat ini atau sub direktori dalam level maksimal 1 dan bukan seluruh pohon direktori yang akan memakan waktu lebih lama.

Sama seperti maxdepth, ada opsi yang disebut mindepth yang melakukan apa yang disarankan oleh namanya, yaitu, ia akan mencapai setidaknya N level sebelum mencari file.

4. Balikkan kecocokan

Dimungkinkan juga untuk mencari file yang tidak cocok dengan nama atau pola tertentu. Ini berguna saat kami mengetahui file mana yang akan dikecualikan dari pencarian.

$ find ./test -not -name "*.php"
./test
./test/abc.txt
./test/subdir

Jadi pada contoh di atas kami menemukan semua file yang tidak memiliki ekstensi php, baik file non-php. Perintah find juga mendukung tanda seru sebagai ganti not.

find ./test ! -name "*.php"

5. Gabungkan beberapa kriteria penelusuran

Dimungkinkan untuk menggunakan beberapa kriteria saat menentukan nama dan pembalik. Misalnya

$ find ./test -name 'abc*' ! -name '*.php'
./test/abc.txt
./test/abc

Perintah find di atas mencari file yang dimulai dengan abc dalam namanya dan tidak memiliki ekstensi php. Ini adalah contoh bagaimana ekspresi pencarian yang kuat dapat dibangun dengan perintah find.

ATAU operator

Saat menggunakan beberapa kriteria nama, perintah find akan menggabungkannya dengan operator AND, yang berarti bahwa hanya file yang memenuhi semua kriteria yang akan dicocokkan. Namun jika kita perlu melakukan pencocokan berbasis OR maka perintah find memiliki tombol "o".

$ find -name '*.php' -o -name '*.txt'
./abc.txt
./subdir/how.php
./abc.php
./cool.php

Perintah di atas mencari file yang diakhiri dengan ekstensi php atau ekstensi txt.

6. Cari hanya file atau direktori saja

Terkadang kita hanya ingin mencari file atau direktori dengan nama tertentu saja. Temukan juga dapat melakukannya dengan mudah.

$ find ./test -name abc*
./test/abc.txt
./test/abc
Only files
$ find ./test -type f -name "abc*"
./test/abc.txt
Only directories
$ find ./test -type d -name "abc*"
./test/abc

Cukup berguna dan praktis!

7. Cari beberapa direktori sekaligus

Jadi katakanlah Anda ingin mencari di dalam 2 direktori terpisah. Sekali lagi, perintahnya sangat sederhana

$ find ./test ./dir2 -type f -name "abc*"
./test/abc.txt
./dir2/abcdefg.txt

Periksa, apakah itu mencantumkan file dari 2 direktori terpisah.

8. Temukan file tersembunyi

File tersembunyi di linux dimulai dengan titik. Jadi mudah untuk menyebutkan bahwa dalam kriteria nama dan daftar semua file yang tersembunyi.

$ find ~ -type f -name ".*"

9. Temukan file dengan izin tertentu

Perintah find dapat digunakan untuk menemukan file dengan izin khusus menggunakan opsi "perm". Perintah berikut mencari file dengan izin 0664

$ find . -type f -perm 0664
./abc.txt
./subdir/how.php
./abc.php
./cool.php

Ini berguna untuk menemukan file dengan izin yang salah yang dapat menyebabkan masalah keamanan. Pembalikan juga dapat diterapkan pada pemeriksaan izin.

$ find . -type f ! -perm 0777
./abc.txt
./subdir/how.php
./abc.php
./cool.php

10. Temukan file dengan set bit sgid/suid

Opsi "perm" dari perintah find menerima string mode yang sama seperti chmod. Perintah berikut menemukan semua file dengan izin 644 dan bit set sgid.

# find / -perm 2644

Demikian pula gunakan 1664 untuk bit lengket. Opsi perm juga mendukung penggunaan sintaks alternatif alih-alih angka oktal.

$ find / -maxdepth 2 -perm /u=s 2>/dev/null
/bin/mount
/bin/su
/bin/ping6
/bin/fusermount
/bin/ping
/bin/umount
/sbin/mount.ecryptfs_private

Perhatikan bahwa "2>/dev/null" menghapus entri yang memiliki kesalahan "Izin Ditolak"

11. Temukan file yang hanya dapat dibaca

Temukan semua file Hanya Baca.

$ find /etc -maxdepth 1 -perm /u=r
/etc
/etc/thunderbird
/etc/brltty
/etc/dkms
/etc/phpmyadmin
... output truncated ...

12. Temukan file yang dapat dieksekusi

Perintah berikut akan menemukan file yang dapat dieksekusi

$ find /bin -maxdepth 2 -perm /a=x
/bin
/bin/preseed_command
/bin/mount
/bin/zfgrep
/bin/tempfile
... output truncated ...

13. Temukan file milik pengguna tertentu

Untuk menemukan semua atau satu file bernama tecmint.txt di bawah direktori /root dari root pemilik.

$ find . -user bob
.
./abc.txt
./abc
./subdir
./subdir/how.php
./abc.php

Kami juga dapat menentukan nama file atau kriteria terkait nama apa pun bersama dengan kriteria pengguna

$ find . -user bob -name '*.php'

Sangat mudah untuk melihat, bagaimana kita dapat membangun kriteria demi kriteria untuk mempersempit pencarian kita untuk file yang cocok.

14. Cari file milik grup

Temukan semua file milik grup tertentu.

# find /var/www -group developer

Tahukah Anda bahwa Anda dapat mencari direktori home Anda dengan menggunakan simbol ~ ?

$ find ~ -name "hidden.php"

Mudah!!

Cari file dan direktori berdasarkan tanggal dan waktu modifikasi

Kriteria pencarian hebat lainnya yang didukung oleh perintah find adalah modifikasi dan tanggal/waktu yang diakses. Ini sangat berguna ketika kita ingin mengetahui file mana yang dimodifikasi sebagai rentang waktu atau tanggal tertentu. Mari kita ambil beberapa contoh

15. Temukan file yang dimodifikasi N hari yang lalu

Untuk menemukan semua file yang dimodifikasi 50 hari yang lalu.

# find / -mtime 50

16. Temukan file yang diakses dalam N hari terakhir

Temukan semua file yang diakses dalam 50 hari terakhir.

# find / -atime 50

17. Temukan file yang dimodifikasi dalam beberapa hari

Temukan semua file yang diubah antara 50 hingga 100 hari yang lalu.

# find / -mtime +50 –mtime -100

18. Temukan file yang diubah dalam N menit terakhir.

Temukan file yang dimodifikasi dalam 1 jam terakhir.

$ find /home/bob -cmin -60

19. File diubah dalam satu jam terakhir

Untuk menemukan semua file yang dimodifikasi dalam 1 jam terakhir.

# find / -mmin -60

20. Temukan File yang Diakses dalam 1 Jam Terakhir

Untuk menemukan semua file yang diakses dalam 1 jam terakhir.

# find / -amin -60

21. Temukan file dengan ukuran tertentu

Cari file dan direktori berdasarkan ukuran. Untuk menemukan semua file 50MB, gunakan.

# find / -size 50M

22. Temukan file dalam rentang ukuran

Untuk menemukan semua file yang lebih besar dari 50MB dan kurang dari 100MB.

$ find / -size +50M -size -100M

23. Temukan file terbesar dan terkecil

Perintah find bila digunakan bersama dengan perintah ls dan sort dapat digunakan untuk membuat daftar file terbesar.
Perintah berikut akan menampilkan 5 file terbesar di direktori saat ini dan subdirektorinya. Ini mungkin memerlukan beberapa saat untuk dieksekusi tergantung pada jumlah total file yang harus diproses oleh perintah.

$ find . -type f -exec ls -s {} \; | sort -n -r | head -5

Demikian pula ketika diurutkan dalam urutan menaik, itu akan menampilkan file terkecil terlebih dahulu

$ find . -type f -exec ls -s {} \; | sort -n | head -5

24. Temukan file dan direktori kosong

Perintah berikut menggunakan opsi "kosong" dari perintah find, yang menemukan semua file yang kosong.

# find /tmp -type f -empty

Untuk mengarsipkan semua direktori kosong gunakan ketik "d".

$ find ~/ -type d -empty

Benar-benar sangat sederhana dan mudah

Beberapa operasi lanjutan

Perintah find tidak hanya menemukan file berdasarkan kriteria tertentu, tetapi juga dapat bertindak atas file tersebut menggunakan perintah linux apa pun. Misalnya, kami mungkin ingin menghapus beberapa file.

Berikut adalah beberapa contoh cepat

25. Buat daftar file yang ditemukan

Katakanlah kita menemukan file menggunakan perintah find, dan sekarang ingin membuat daftarnya seperti yang akan dilakukan oleh perintah ls. Ini sangat mudah.

$ find . -exec ls -ld {} \;
drwxrwxr-x 4 enlightened enlightened 4096 Aug 11 19:01 .
-rw-rw-r-- 1 enlightened enlightened 0 Aug 11 16:25 ./abc.txt
drwxrwxr-x 2 enlightened enlightened 4096 Aug 11 16:48 ./abc
drwxrwxr-x 2 enlightened enlightened 4096 Aug 11 16:26 ./subdir
-rw-rw-r-- 1 enlightened enlightened 0 Aug 11 16:26 ./subdir/how.php
-rw-rw-r-- 1 enlightened enlightened 29 Aug 11 19:13 ./abc.php
-rw-rw-r-- 1 enlightened enlightened 0 Aug 11 16:25 ./cool.php

26. Hapus semua file atau direktori yang cocok

Perintah berikut akan menghapus semua file teks di direktori tmp.

$ find /tmp -type f -name "*.txt" -exec rm -f {} \;

Operasi yang sama dapat dilakukan dengan direktori, cukup masukkan tipe d, bukan tipe f.

Mari kita ambil contoh lain di mana kita ingin menghapus file yang lebih besar dari 100MB

$ find /home/bob/dir -type f -name *.log -size +10M -exec rm -f {} \;

Ringkasan

Demikian tutorial singkat tentang perintah find linux . Perintah find adalah salah satu perintah paling penting di terminal linux, yang memungkinkan pencarian file dengan sangat mudah. Ini adalah keharusan bagi semua administrator sistem. Jadi pelajarilah. Ada pertanyaan ? Tinggalkan komentar di bawah.


Linux
  1. 25 Berguna menemukan Contoh Praktis Perintah di Linux

  2. 8 Contoh Perintah Linux TR

  3. Contoh Perintah rm di Linux

  1. temukan Contoh Perintah di Linux

  2. Contoh Perintah ps di Linux

  3. sa Contoh Perintah di Linux

  1. w Contoh Perintah di Linux

  2. Contoh Perintah ac di Linux

  3. Contoh Perintah df di Linux