Mencari dan Menghapus File Dalam Satu Perintah di Linux

Linux / Unix – Syntax untuk Mencari dan Menghapus File

Perintah  dasar untuk pencarian file adalah :
find dir-name criteria action

  1. dir-name : Direkrtori aktif (mis: /home)
  2. criteria : Jenis file yang dicari, misalnya : “*.sh
  3. action : Jenis eksekusi yang akan dilakukan saat file ditemukan (mis: delete).

Untuk menghapus banyak file seperti *.jpg atau *.sh dengan satu perintah dapat menggunakan :

find . -name "FILE-TO-FIND" -exec rm -rf {} \;

ATAU

find . -type f -name "FILE-TO-FIND" -exec rm -f {} \;

Perbedaan antara kedua syntaks diatas adalah perintah pertama akan menghapus direktori berikut semua file yang ada didalamnya, sedangkan perintah kedia hanya menghapus file saja.

  1. -name "FILE-TO-FIND" : Jenis dan nama file yang dicari.
  2. -exec rm -rf {} \; : Hapus semua file yang sesuai dengan nomor 1.D
  3. -type f : Hanya file saja tidak mencakup direktori.

Contoh Penggunaan :

PENTING! Mengeksekusi perintah dibawah ini mungkin akan menyebabkan kerusakan pada sistem, pastikan untuk membuat backup pada file-file penting sebelumnya. Sebaiknya tidak menggunakan perintah rm saat memakai user root karena dapat menyebabkan kerusakan pada sistem.

Mencari semua file dengan ekstensi .bak pada direktori saat ini dan menghapusnya :
$ find . -type f -name "*.bak" -exec rm -f {} \;

Mencari semua file dengan nama core pada direktori root (/) dan menghapusnya:
# find / -name core -exec rm -f {} \;

Mencari semua file dengan ekstensi *.bak pada direktori saat ini dan menghapusnya dengan terlebih dahulu memberikan konfirmasi pada user:
$ find . -type f -name "*.bak" -exec rm -i {} \;

Contoh Keluaran :
rm: remove regular empty file `./data0002.bak'? y
rm: remove regular empty file `./d234234234fsdf.bak'? y
rm: remove regular empty file `./backup-20-10-2005.bak'? n

Sumber: cyberciti.biz