GNU/Linux >> Belajar Linux >  >> Linux

Gunakan Temukan dan Temukan untuk mencari file di Linux

Artikel ini akan memperkenalkan dua alat yang berguna untuk mencari file dalam sistem file Linux. Yang pertama adalah find perintah, yang dapat ditemukan di semua distribusi Linux, dan yang kedua adalah locate , yang memerlukan penginstalan.

Temukan perintah

Perintah find adalah bagian dari Linux secara default. Ini menawarkan beberapa parameter untuk mempersempit pencarian Anda.

Temukan berdasarkan nama

Perintah pencarian paling sederhana adalah mencari berdasarkan nama di mana Anda berada:

$ find -name "FILE_NAME"

Anda dapat menentukan direktori tempat Anda ingin mencari file:

$ find /home -name my_file.txt
$ find / -name my_other_file.txt

Mempertimbangkan bahwa perintah ini peka huruf besar/kecil. Jika Anda ingin mengabaikan kasus, gunakan:

$ find -iname "FILE_NAME"

Jika Anda ingin mencari file yang tidak mengikuti pola yang ditentukan, Anda dapat meniadakan parameter pencarian dengan menggunakan -not parameter atau \! . Misalnya:

$ find -not -name "FILE_NAME_TO_AVOID"

or

$ find \! -name "FILE_NAME_TO_AVOID"

Temukan menurut jenis file

file perintah juga memungkinkan Anda untuk mencari jenis file. Beberapa deskriptor jenis file yang umum adalah:

  • f :berkas biasa
  • d :direktori
  • l :tautan simbol
  • c :perangkat karakter
  • b :memblokir perangkat

Jenis file yang diinginkan berada setelah -type atribut.

Misalnya, untuk menemukan file JSON al di bawah etc direktori:

$ find /etc -type f -name "*.json"

Temukan menurut ukuran file

Ada juga parameter yang digunakan untuk memfilter hasil pencarian tergantung pada ukuran file:-size .

Untuk satuan ukuran, Anda dapat menggunakan akhiran berikut:

  • c :byte
  • k :kilobyte
  • M :megabyte
  • G :gigabyte
  • b :blok 512-byte

Dan untuk menentukan apakah Anda berbicara tentang ukuran yang tepat, kurang dari, atau lebih besar dari gunakan awalan berikut:

  • Penelusuran tepat :tanpa awalan
  • Kurang dari :- awalan
  • Lebih besar dari :+ awalan

Misalnya, untuk menemukan semua file 3 gigabyte di bawah direktori home:

$ find /home -size 3G

Untuk semua file di bawah 3 gigabyte:

$ find /home -size -3G

File lebih dari 3 gigabyte:

$ find /home -size +3G

Telusuri menurut waktu

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

  • Waktu akses :-atime untuk terakhir kali file dibaca.
  • Waktu modifikasi :-mtime untuk terakhir kali isi file diubah.
  • Ubah waktu :-ctime untuk terakhir kalinya meta-data inode file diubah.

Dimungkinkan juga untuk membandingkan dengan file referensi untuk mengembalikan file yang lebih baru:

$ find / -newer file_name

Untuk waktu, parameter yang ditentukan dalam hari . Awalan yang sama seperti dalam pencarian berdasarkan ukuran dapat digunakan:

$ find /home -mtime 3
$ find /home -atime -2
$ find /home -ctime +5

Untuk menemukan file menggunakan waktu dalam hitungan menit, Anda dapat menggunakan:

$ find /home -mmin 3

Temukan menurut pemilik dan izin

Ada juga parameter untuk menemukan file sesuai dengan pemiliknya (-user dan -group ) dan izinnya (-perm ):

$ find /home -user my_user
$ find /home -group my_group
$ find /home -perm 777

Menentukan kedalaman pencarian

Saat mencari di bawah direktori, find perintah akan mengembalikan semua file di bawah direktori itu, bahkan jika mereka berada di dalam subdirektori lain. Untuk mengontrol kedalaman ini, Anda dapat menentukan kedalaman maksimum, kedalaman minimum, atau keduanya.

Misalnya, untuk mencari hanya di direktori teratas dan satu tingkat subdirektori, Anda dapat mengatur -maxdepth parameter ke 2:

$ find -maxdepth 2 -name my_file

Untuk menentukan kedalaman minimum di mana find harus mencari Anda menggunakan -mindepth parameter:

$ find -mindepth 5 -name my_file

Parameter ini dapat digabungkan:

$ find -mindepth 4 -maxdepth 7 -name my_file

Menjalankan perintah pada hasil

Seperti yang terlihat pada perintah kedalaman, semua find parameter dapat dikombinasikan untuk mendapatkan hasil yang sangat spesifik. Ketika Anda mendapatkan hasil yang Anda inginkan, Anda dapat menjalankan perintah di atasnya dengan menggunakan -exec parameter.

Saat menggabungkan parameter pencarian, Anda juga dapat menggunakan -and dan -or pilihan untuk mempersonalisasi kriteria pencarian Anda. Jika tidak ada yang digunakan, -and opsi adalah default.

Misalnya, untuk mengubah izin ke semua file di bawah /my_dir direktori yang saat ini memiliki 777 izin hingga 664 gunakan yang berikut ini:

$ cd /my_dir
$ find . -type f -perm 777 -exec chmod 664 {} \;

Temukan alat

locate perintah adalah alternatif untuk find . Perbedaannya adalah ia menggunakan database file dalam sistem file sehingga dapat bekerja lebih cepat. Untuk menginstal locate alat yang dapat Anda gunakan:

  • Untuk Distribusi Ubuntu/Debian:
$ sudo apt install mlocate`
  • Untuk Distribusi CentOS/RHEL:
$ sudo yum install mlocate`

Locate menggunakan tugas cron untuk memperbarui basis data setiap hari, tetapi dapat diperbarui secara manual dengan menggunakan:

$ sudo updatedb

Untuk mencari “nama dasar”, yaitu bahwa kueri hanya terdapat dalam nama file dan bukan di jalur file, gunakan -b bendera:

$ locate -b name

Untuk menemukan file yang masih ada (setelah updatedb terakhir panggilan) gunakan -e bendera:

$ locate -e name

Untuk statistik dari database yang dihasilkan, gunakan:

$ locate -S

Kesimpulan

Mencari file di baris perintah Linux mungkin sulit. Alat yang disajikan dalam artikel ini memberikan cara mudah untuk menangani dan menemukan file. Dengan memahami parameter yang berbeda, pencarian bisa sespesifik yang diinginkan.

Gunakan tab Umpan Balik untuk memberikan komentar atau mengajukan pertanyaan. Anda juga dapat memulai percakapan dengan kami.


Linux
  1. Bagaimana Cara Mencari File Berdasarkan Ukuran Dan Ekstensi?

  2. Bagaimana Cara Menggunakan Gui Untuk Mencari File Di Gnome?

  3. Temukan File dengan Perintah Temukan dan Temukan di Linux

  1. Cara Menggunakan Perintah find Linux untuk Menemukan File

  2. Cara mencari file menggunakan regex di skrip shell linux

  3. linux:cari file bertipe *.php yang baru saja dimodifikasi

  1. Cara Menggunakan Perintah 'find' untuk Mencari Beberapa Nama File (Ekstensi) di Linux

  2. Temukan File dan Direktori di Linux Seperti Profesional

  3. Alternatif yang lebih cepat untuk ditemukan dan ditemukan?