GNU/Linux >> Belajar Linux >  >> Linux

Temukan File dan Direktori di Linux dengan Mudah

Tutorial ini berfokus pada cara menemukan file di Linux menggunakan perintah find dan locate.

Sebagai administrator sistem, adalah tugas yang sangat umum untuk mencari file tertentu di sistem file Anda .

Namun, terkadang sulit untuk menemukan file di Linux sistem file terutama jika Anda memiliki lusinan pengguna yang berbeda.

Ada dua perintah yang dapat membantu Anda mencapai tujuan:temukan dan temukan.

Dalam tutorial ini, kita akan melihat bagaimana menggunakan perintah tersebut secara efektif dan bagaimana perintah tersebut dapat disetel untuk mencapai apa yang kita cari.

Temukan File menggunakan perintah Temukan

Cara pertama untuk menemukan dan menemukan file di host Linux adalah dengan menggunakan perintah find.

Secara default, perintah find tersedia di semua distribusi dan memiliki sintaks berikut

$ find <options> <path> <expression>

Kiat cepat :apakah Anda mengalami kesulitan mengingat jika jalur atau ekspresi didahulukan?

Ingatlah bahwa untuk grEP adalah E ekspresi P ath, dan find adalah kebalikannya, jadi P di E ekspresi!

Find adalah perintah yang cukup kuat karena memiliki lebih banyak opsi daripada perintah locate.

Berikut adalah semua kemungkinan fungsi find di Linux.

Temukan file dengan temukan berdasarkan nama file

Penggunaan paling umum dari fungsi find adalah untuk menemukan file diberikan nama filenya .

$ find <path> -name <pattern>

Perbedaan utama antara find dan locate dalam mencari file adalah find akan mencari nama file sedangkan locate akan mencari jalur ke file.

Misalnya, jika kita kembali ke contoh runlevel yang kita gunakan sebelumnya, berikut cara mencari file runlevel menggunakan perintah find.

$ find / -name runlevel*

Apa bagian "2> /dev/null"?

Saya mengarahkan ulang keluaran kesalahan ke /dev/null menggunakan pengalihan keluaran untuk menghindari pesan kesalahan di konsol.

Temukan file menggunakan find by filetype

Seperti yang telah kita bahas sebelumnya dalam artikel kami tentang tautan keras dan lunak, file diberi jenis file dan digunakan sebagai cara untuk membedakannya.

Berikut adalah rekap semua jenis file yang digunakan di Linux.

  • f :file standar
  • d :folder atau direktori
  • l :tautan simbolis atau tautan lunak
  • b :memblokir perangkat (seperti hard drive misalnya)
  • c :perangkat karakter (port serial, kartu suara)
  • p :bernama pipa
  • s :soket

Mengetahui semua jenis file tersebut, Anda sekarang dapat mencari file menurut jenis file dengan perintah find.

$ find <path> -type <filetype>

Misalnya, jika kami menelusuri semua tautan simbolik pada host, kami akan mengeluarkan perintah berikut.

$ find / -type l

Parameter dapat digabungkan, misalnya jika saya mencari semua tautan simbolik yang nama filenya diakhiri dengan ".service" (untuk mengisolasi semua layanan systemd misalnya), saya akan menjalankan perintah berikut.

$ find / -type l -name *.service

Menemukan file menggunakan pola (untuk ekstensi)

Sama halnya dengan perintah locate, Anda dapat menemukan file di Linux menggunakan sebuah pola.

Sebagai pengingat, pola adalah string yang menyertakan karakter globbing (seperti *, ?, atau rentang).

Opsi ini terutama saat Anda mencoba mencari file yang diberi ekstensi, misalnya file Javascript.

Untuk menemukan file di Linux menggunakan pola, jalankan perintah berikut

$ find <path> -name ".<extension>"
$ find / -name "*.js"

File file di Linux oleh pemilik

Terkadang, Anda ingin mengisolasi file yang dibuat oleh pengguna tertentu .

Saat menghapus pengguna di host Anda, Anda mungkin ingin menghapus semua file yang terkait dengan pengguna ini misalnya.

Terkadang, pengguna membuat file dari direktori home mereka dan menghapus direktori home pengguna saja tidak cukup.

Akibatnya, untuk menemukan file yang dibuat oleh pengguna tertentu di Linux, jalankan perintah berikut

$ find <path> -user <user>

Misalnya, untuk menemukan semua file yang dimiliki oleh “john” di host saya, saya akan menjalankan perintah berikut.

$ find / -user john

Sekarang bagaimana jika saya ingin menghapus semua file milik john dengan perintah sederhana?

Ini dapat dengan mudah dicapai dengan menggunakan tanda hapus.

$ find / -user john -delete

Menemukan file di Linux dengan izin

Dengan menggunakan perintah find, Anda juga dapat menemukan dan menemukan file yang memiliki izin tertentu di host Anda.

$ find <path> -perm <permissions>

Sebagai pengingat, berikut adalah cara kerja izin file di Linux.

Untuk menemukan semua file yang memiliki izin penuh (777 diberi notasi biner), Anda dapat menjalankan perintah berikut.

$ find / -perm 777

Ini bisa sangat berguna jika untuk alasan keamanan Anda ingin memeriksa apakah tidak ada file yang dikonfigurasi dengan izin penuh pada sistem Anda.

Temukan file dengan temukan berdasarkan ukuran

Cara lain yang sangat berguna untuk menemukan dan menemukan file di Linux adalah dengan menemukan perintah find dengan opsi ukuran.

Opsi ukuran memungkinkan Anda mencari file dengan ukuran yang sama persis dengan yang Anda tentukan, lebih besar dari ukuran tertentu atau lebih rendah dari ukuran tertentu.

Untuk mencari file berdasarkan ukuran, gunakan perintah berikut

$ find <path> -size <size>

Ukuran ditentukan oleh awalan berikut:

  • c :byte
  • b :blok 512-byte
  • k :Kilobyte
  • L :Megabyte
  • G :Gigabyte

Anda dapat menentukan “+” jika Anda mencari file yang lebih besar dari ukuran yang ditentukan.

Misalnya, untuk menemukan file yang lebih besar dari 1 GB di sistem Anda, jalankan perintah berikut

$ find / -size +1G

Untuk menemukan file yang lebih kecil dari 10 MB di sistem Anda , jalankan perintah berikut

$ find / -size -10M

Terakhir, untuk mencari file yang persis ukuran yang ditentukan dalam kueri, Anda tidak boleh menambahkan awalan plus atau minus apa pun ke perintah.

$ find / -size 1024k

Perintah yang baru saja ditentukan akan menemukan semua file yang berukuran persis 1024 Kbs di host Anda.

Temukan file di Linux berdasarkan tanggal modifikasi

Dengan menggunakan find, Anda juga dapat menemukan file dengan tanggal modifikasi, terbaru atau tidak.

Perintah ini sangat berguna dan cukup sering digunakan oleh administrator sistem untuk menemukan file atau direktori yang baru saja dimodifikasi.

Untuk mencari file menggunakan find by modifikasi tanggal, jalankan perintah berikut

$ find <path> -mtime <time>

Di mana waktu menunjukkan file yang dimodifikasi 24* .

Akibatnya, waktu dinyatakan dalam hari.

Sama halnya dengan opsi ukuran, Anda dapat menambahkan “plus ” atau “minus ” operator ke waktu untuk mencari file yang diubah lebih dari

Misalnya, untuk mencari file yang diubah tepat 3 jam yang lalu , Anda akan menjalankan perintah berikut.

$ find / -mtime 3

Untuk menemukan file yang dimodifikasi lebih dari satu minggu yang lalu , Anda akan menjalankan perintah berikut

$ find / -mtime +7

Untuk menemukan file yang dimodifikasi kurang dari dua hari yang lalu , Anda akan menjalankan perintah berikut

$ find / -mtime -2

Temukan file dengan kedalaman dinamis

Seperti yang mungkin Anda perhatikan, sejak awal tutorial ini, kami memberikan contoh pencarian file yang dimulai dari direktori root.

Akibatnya, semua folder dijelajahi secara rekursif.

Namun, kita dapat membatasi jumlah direktori yang dilalui secara rekursif dari satu direktori, ini disebut depth.

Untuk membatasi pencarian file pada kedalaman tertentu , jalankan kueri berikut

$ find <path> -maxdepth <depth>

Sebagai contoh, berikut adalah bagaimana Anda dapat membatasi pencarian file ke direktori saat ini, tanpa direktori anak-anak yang sedang diramban.

$ find / -maxdepth 1

Anda jelas dapat menggabungkan perintah ini dengan flag nama untuk mencari file dengan nama tertentu di direktori saat ini.

$ find . -maxdepth 1 -name *.tar

Merantai pencarian dengan -exec

Dalam beberapa kasus, mungkin berguna untuk menghubungkan perintah find dengan perintah exec.

Opsi exec dapat digunakan untuk menyatukan beberapa perintah :mengambil hasil dari yang pertama sebagai input dari yang kedua.

Katakanlah misalnya Anda ingin menemukan semua file yang dimodifikasi kurang dari satu menit yang lalu

$ find /home/user -mmin -1
./file1

Sekarang katakanlah Anda ingin menghapus semua file yang diubah kurang dari satu menit yang lalu.

Anda dapat merangkai perintah find dengan opsi -exec menggunakan sintaks ini.

$ find /home/user -mmin -1 -exec echo rm -f '{}' \;

Kami jelas pertama-tama "menggemakan" hasil karena kami ingin memastikan bahwa kami menghapus file yang benar.

Saat Anda siap untuk menghapus file tersebut, cukup hapus perintah echo.

$ find /home/user -mmin -1 -exec rm -f '{}' \;

Temukan File di Linux menggunakan perintah Locate

Cara hebat lainnya untuk menemukan dan menemukan file di Linux adalah dengan menggunakan lokasi perintah.

Prasyarat

Jika perintah locate in tidak tersedia di sistem Anda, pastikan untuk membaca bagian berikutnya untuk membuat locate berjalan di sistem Anda.

a – Menginstal Locate pada distribusi berbasis APT dan RPM

Untuk memasang lokasi , Anda akan memerlukan hak sudo di host Linux Anda.

Untuk memeriksa apakah locate diinstal pada host Anda, jalankan perintah locate di baris perintah.

$ locate

Jika locate terinstal di komputer Anda, ekspresi akan ditampilkan

Jika locate tidak diinstal pada host Anda, pesan kesalahan akan ditampilkan

Untuk menginstall locate di Ubuntu 18.04 dan Debian 10, jalankan perintah berikut.

$ sudo apt-get install mlocate

Demikian pula, jika Anda menggunakan distribusi berbasis CentOS atau Fedora, jalankan perintah berikut untuk menginstal locate.

$ sudo yum install mlocate

b – Memperbarui basis data mlocate Anda

lokasi function bekerja dengan database lokal yang tersimpan di sistem file Anda yang menyimpan setiap nama file dari host Anda.

Saat melakukan perintah locate, locate akan mencari ke database yang disiapkan oleh updatedb untuk file yang Anda cari.

Secara berkala, tugas cron memperbarui mlocate.db file untuk Anda cari entri terbaru.

Basis data terletak di /var/lib/mlocate/mlocate.db secara default dan file konfigurasi updatedb disimpan di /etc/updatedb.conf .

Untuk saat ini, Anda dapat meninggalkan opsi default dan menjalankan perintah updatedb sederhana untuk memperbarui database Anda.

$ sudo updatedb

Menemukan file yang diberi pola nama

Cara paling dasar untuk menemukan file di Linux adalah menyediakan pola untuk perintah locate .

Secara default, sintaks dari perintah locate adalah sebagai berikut

$ locate [OPTION]... [PATTERN]...

Jika Anda mencari file konfigurasi tertentu di sistem Anda, cara mudah untuk menemukannya adalah dengan memberikan nama file lengkapnya ke perintah locate.

$ locate updatedb.conf

Seperti yang Anda lihat, perintah locate mengembalikan path lengkap ke file yang saya cari.

Menemukan file di direktori terbatas

Terkadang, Anda mungkin tidak memiliki akses ke beberapa direktori di sistem Anda.

Akibatnya, Anda tidak akan dapat menemukan file yang ada di dalamnya.

Mari kita ambil contoh folder terlarang yang berisi file bernama “file terbatas “.

Untuk menemukan file yang terletak di direktori terbatas, Anda harus menjalankan perintah locate dengan hak istimewa sudo.

$ sudo locate restricted-file

Menemukan file menggunakan pola

Menggunakan perintah locate, Anda dapat memberikan "pola" dalam bentuk karakter globbing .

Globbing karakter , juga disebut wildcard, adalah karakter yang digunakan untuk mencocokkan satu atau beberapa entri dengan ekspresi yang disederhanakan.

Yang paling populer adalah “* ” yang akan cocok dengan karakter apa pun termasuk tidak ada.

Berikut tabel rekap untuk karakter globbing dan fungsinya.

Wildcard Deskripsi Contoh Cocok Tidak cocok
* cocok dengan jumlah karakter apa pun termasuk tidak ada devco* devconnected, devcoco, devco.com devdevco,
[abc] cocok dengan satu karakter yang diberikan dalam tanda kurung [ab]ab aab, sayang cab
[a-z] mencocokkan satu karakter dari rentang (tergantung lokal) yang diberikan dalam tanda kurung runlevel[0-9] runlevel1, runlevel2, runlevel6 runlevel, runlevelo

Sebagai contoh, berikut adalah cara untuk menemukan semua file teks di sistem Anda.

$ locate *.txt

Menemukan file menggunakan ekspresi reguler

Seperti yang dinyatakan dalam halaman manual resmi untuk locate, perintah locate menerima sebuah pola sebagai masukan.

Ini berarti Anda dapat memberikan ekspresi reguler ke perintah locate.

Untuk menemukan dan menemukan file yang diberi regex, gunakan –regex pilihan untuk perintah locate.

$ locate --regex <regex>

Misalnya, untuk mengisolasi semua file yang dimulai dengan runlevel diikuti dengan angka, Anda akan menjalankan perintah berikut.

$ locate --regex runlevel[0-9]+

Saat menggunakan regex, ada satu poin penting yang harus Anda perhatikan saat mencari file.

Perintah locate mencari jalur ke file di database lokalnya.

Akibatnya, saat mencari file, Anda harus menyadari bahwa ekspresi reguler Anda harus cocok dengan jalur ke file dan bukan hanya nama file.

Misalnya, jika saya mencari file yang dimulai dengan "run", tidak ada hasil yang tidak akan dikembalikan karena jalur ke file dimulai dengan "/usr".

Temukan file menggunakan opsi tidak peka huruf besar/kecil

Saat mencari file di sistem file Anda, Anda mungkin tidak yakin tentang cara nama file tertentu.

Apakah itu ditulis dalam huruf besar atau huruf kecil? Apakah itu mengandung huruf besar sama sekali?

Untuk menemukan dan menemukan file menggunakan opsi case-insensitive, tambahkan opsi -i ke perintah locate Anda.

$ locate -i <file_pattern>

Cari file menurut konten menggunakan grep

Dalam beberapa kasus, Anda mungkin tertarik untuk mencari file yang cocok dengan kata tertentu dari kalimat yang terletak DI DALAM file.

Ini dapat terjadi misalnya jika Anda mencoba mencari file yang berisi peristiwa log tertentu.

Cara pertama untuk mencari file yang cocok dengan kata tertentu adalah dengan menggunakan perintah grep

$ grep -r <pattern> <path>

Catatan :jangan lupa opsi “-r” jika Anda mencari file melalui seluruh direktori.

Sebagai contoh. jika Anda mencari semua file yang memiliki "kesalahan" dalam kontennya, yang terletak di direktori home Anda, Anda akan mengetik

$ grep -r error /home/user

Dalam beberapa kasus, Anda mungkin ingin mencari file yang diberi ekspresi reguler.

Untuk menemukan file menggunakan ekspresi reguler, gunakan opsi “-E”.

$ grep -r -E <expression> <path>

Katakanlah misalnya Anda ingin menemukan file yang cocok dengan pola 'abc' di salah satu file Anda, ketikkan

$ grep -r -E "abc.*" --color /home/user

Catatan :opsi warna digunakan untuk menyorot kecocokan menggunakan perintah grep.

Temukan file menggunakan yang

Cara hebat lainnya untuk menemukan file di Linux adalah dengan menggunakan perintah which.

Perintah which digunakan untuk mencari file yang terkait dengan perintah tertentu.

Ini bisa menjadi sangat berguna ketika Anda tidak tahu di mana Anda menyimpan binari Anda untuk sebuah perintah atau jika Anda perlu mencari perintah untuk menambahkannya ke PATH Anda.

$ which <command>

Misalnya, untuk mencari file yang terkait dengan perintah “ls”, ketikkan

$ which ls
/usr/bin/ls

Seperti yang Anda lihat, Anda diberikan jalur lengkap ke file.

Temukan binari menggunakan whereis

Demikian pula, sangat mungkin untuk mencari file dengan menggunakan perintah whereis.

Perintah “whereis” dapat dilihat sebagai superset dari perintah “which” :“whereis” memberikan informasi tentang nama perintah, lokasi file serta lokasi halaman manual.

Untuk menjalankan whereis, cukup ketik “whereis” dan tambahkan nama perintah Anda.

$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

Sangat berguna!

Kesimpulan

Dalam tutorial hari ini, Anda telah mempelajari cara menemukan dan menemukan file di Linux menggunakan dua perintah penting:cari dan temukan.

Meskipun opsi disajikan satu per satu, Anda harus ingat bahwa opsi tersebut dapat digabungkan agar dapat menentukan lebih banyak lagi file yang Anda cari.

Seperti biasa, jika Anda tertarik dengan administrasi sistem Linux, kami memiliki bagian lengkap yang didedikasikan untuk Linux di situs web kami.


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

  2. Temukan file dan direktori terbesar di Linux

  3. Linux Hapus File dan Direktori

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

  2. Linux – Direktori Standar Dan/atau Umum Pada OS Unix/linux?

  3. Linux menemukan perintah

  1. Temukan File dan Direktori di Linux Seperti Profesional

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

  3. Temukan dan salin file