Pendahuluan


Di sistem operasi Linux, perintah find adalah cara yang ampuh untuk mencari file dan direktori.

Dibandingkan dengan fitur pencarian bawaan file manager seperti ranger, midnight commander, ataupun cfiles, find menawarkan kemampuan yang lebih luas dan fleksibel.

Dengan find, kita dapat mencari berdasarkan berbagai kriteria, seperti:

  • Nama: Mencari file dengan nama tertentu atau pola karakter.
  • Lokasi: Mencari di direktori tertentu atau seluruh sistem.
  • Tipe: Mencari file biasa, direktori, link simbolik, dan lain-lain.
  • Ukuran: Mencari file berdasarkan ukuran file (kilobyte, megabyte, gigabyte).
  • Izin akses: Mencari file dengan izin akses tertentu (read, write, execute).
  • Waktu modifikasi: Mencari file yang diubah dalam jangka waktu tertentu.

Perintah dasar


Sintaks dasar dari perintah find adalah sebagai berikut:

find [path] [options] [expression]

Dengan detail sbb :

  • path: lokasi awal pencarian (default: direktori saat ini).
  • options: opsi tambahan untuk mempersempit pencarian.
  • expression: kriteria pencarian untuk menyaring hasil.

Contoh penggunaan


Kembali lagi format perintahnya adalah sbb :

find [path] [options] [expression]

Berikut beberapa contoh penggunaan umum dari perintah find:



  1. Mencari file berdasarkan nama:

find . -name "dokumen.txt"  # Mencari file "dokumen.txt" di direktori saat ini.
find /home -name "*.jpg"      # Mencari semua file berekstensi JPG di direktori /home.

  1. Mencari file berdasarkan tipe:

find /var -type f  # Mencari semua file biasa di direktori /var.
find /etc -type d  # Mencari semua direktori di direktori /etc.

  1. Mencari file dengan ukuran tertentu:

find / -size +10M  # Mencari semua file yang ukurannya lebih dari 10 Megabyte.
find . -size 0  # Mencari semua file kosong di direktori saat ini.

  1. Mencari file berdasarkan waktu modifikasi:

find /tmp -mtime -1  # Mencari semua file di /tmp yang dimodifikasi dalam 1 hari terakhir.
find /usr -atime +7  # Mencari semua file di /usr yang terakhir diakses lebih dari 7 hari yang lalu.

Opsi tambahan


Perintah find memiliki banyak opsi tambahan yang dapat dikombinasikan untuk pencarian yang lebih kompleks.

Beberapa opsi yang umum digunakan:

  • -print: Mencetak path lengkap dari file yang ditemukan.
  • -exec: Menjalankan perintah tertentu pada setiap file yang ditemukan (misalnya, menghapus file).
  • -user username: Mencari file yang dimiliki oleh pengguna tertentu.
  • -group groupname: Mencari file yang dimiliki oleh grup tertentu.
  • -perm permission: Mencari file dengan izin akses tertentu.
  • -newermt tanggal: mencari file yang dimodifikasi lebih baru dari tanggal tersebut.

Find untuk melakukan pendelete an file yang sudah lama.


Dengan perintah dasar dan opsi tambahan yang kita ketahui dari perintah find diatas, maka kita dapat melakukan perhitungan jumlah file, ukuran file, dan pendelete an file yang sudah lama.

Tentunya dengan memanfaatkan opsi tambahan :

  • -newermt
  • -exec

Ini contohnya :


  1. Mengecek berapa banyak file yang akan didelete

find /upload/ ! -newermt "2024-02-01 18:00:00" | wc -l  #Menghitung jumlah file di /upload yang tidak lebih baru dari tanggal 2024-02-01

  1. Mengecek total ukuran file yang akan didelete

find /upload/ ! -newermt "2024-02-01 18:00:00" -print0 | du -bc --files0-from=- | tail -1

  1. Mendelete file yang lebih lama dari tanggal tertentu

find /upload/ ! -newermt "2021-02-01 00:00:00" -exec rm {} \;

  1. Mendelete file yang lebih lama dari tanggal tertentu dengan konfirmasi persetujuan dari kita

find /upload/ ! -newermt "2021-02-01 00:00:00" -exec rm -i {} \;

Dengan menggunakan perintah find ini, maka kita dapat secara mudah melakukan pendelete-an file2 seperti layaknya kalau kita mendelete file di GUI seperti di Windows.