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"
Penelusuran terbalik
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 biasad
:direktoril
:tautan simbolc
:perangkat karakterb
: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
:bytek
:kilobyteM
:megabyteG
:gigabyteb
: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.