Perintah rm Linux: Opsi rm -rf dan Cara Menghapus Tanpa Konfirmasi

Perintah rm menghapus file secara langsung tanpa melewati tempat sampah. rm adalah singkatan dari remove dan berfungsi menghapus file serta direktori; artikel ini merangkum cara penggunaan dasar, opsi-opsinya, dan alasan direktori root tetap ada meskipun [rm -rf /] dijalankan.
Di AlmaLinux 9.8, akun root sudah memiliki [alias rm=’rm -i’] secara default, sehingga rm meminta konfirmasi sebelum menghapus. Untuk OS Linux yang belum memiliki pengaturan ini, cara menambahkan alias sendiri juga dibahas.
✅ Cara Penggunaan Dasar
Penggunaan dasarnya adalah sebagai berikut.
rm -opsi target: File atau direktori
File terhapus cukup dengan menuliskan namanya, sedangkan direktori baru terhapus jika opsi -r ditambahkan.
# Hapus file
rm file1
# Hapus beberapa file
rm file1 file2
# Hapus direktori beserta isinya
rm -r dir1/
# Hapus direktori kosong
rm -d dir1/~]# rm dir1/
rm: cannot remove 'dir1/': Is a directoryJika direktori ditentukan tanpa opsi, direktori itu tidak terhapus, seperti terlihat di atas.
Jika tautan simbolik dihapus, hanya tautannya yang hilang; file tujuan yang ditunjuk tautan itu tetap ada. Untuk memeriksa sebelum dan sesudah penghapusan, gunakan juga perintah ls.
✅ rm -rf: Menghapus Tanpa Konfirmasi
Saat perintah rm dijalankan, muncul pertanyaan [remove regular file]; ini karena di akun root, rm dijalankan melalui alias [rm -i].
~]# rm file1
rm: remove regular file 'file1'? y
~]# alias rm
alias rm='rm -i'Jika direktori dihapus dengan opsi -r, konfirmasi diminta saat masuk ke setiap direktori dan untuk setiap file, sehingga makin banyak file, makin merepotkan.
~]# rm -r logs/
rm: descend into directory 'logs/'? y
rm: remove regular file 'logs/access.log'? y
rm: remove regular empty file 'logs/error.log'? y
rm: remove directory 'logs/'? yDalam kasus ini, tambahkan juga opsi -f: penghapusan berjalan tanpa konfirmasi, dan tidak ada error meskipun file yang ditentukan tidak ada.
rm -rf logs/Hasil yang sama juga didapat dengan menambahkan backslash [\] di depan perintah agar alias dilewati, atau menambahkan [yes |] di depannya agar y dimasukkan di setiap konfirmasi.
\rm -r logs/
yes | rm -r logs/✅ Opsi Perintah rm & Simulator
| Opsi | Penjelasan | |
|---|---|---|
| -f | --forceMenghapus tanpa konfirmasi dan tidak menampilkan error meskipun file yang ditentukan tidak ada | |
| -i | Meminta konfirmasi pengguna setiap kali akan menghapusalias rm='rm -i' | |
| -I(huruf kapital i) | Meminta konfirmasi sekali saja jika ada 4 file atau lebih, atau jika dipakai bersama -r | |
| -r, -R | --recursiveMenghapus direktori beserta semua subdirektori dan file di dalamnya | |
| -d | --dirMenghapus direktori kosong | |
| -v | --verboseMenampilkan setiap file dan direktori yang dihapus, satu per baris | |
| --preserve-root | Tidak menghapus direktori root (/) (default) | |
| --no-preserve-root | Mematikan perlindungan direktori root (/) |
✅ rm -rf /: Mencegah Direktori Root Terhapus
Dalam pekerjaan hosting, kadang ada file yang terhapus padahal seharusnya tidak dihapus. Sebagian besar bisa dipulihkan dari file backup, tetapi jika direktori root terhapus, pemulihannya merepotkan meskipun ada snapshot. Kenyataannya, beberapa kali terdengar kasus salah menjalankan perintah rm -rf yang akhirnya tidak bisa dipulihkan.
Perintah rm menerapkan opsi [--preserve-root] secara default, sehingga direktori root tidak terhapus meskipun [rm -rf /] dijalankan.
~]# rm -rf /
rm: it is dangerous to operate recursively on '/'
rm: use --no-preserve-root to override this failsafeNamun, [rm -rf /*] tidak bisa dicegah. Shell mengubah [/*] menjadi nama direktori seperti /bin, /etc, /home sebelum meneruskannya, sehingga perintah rm menghapus setiap direktori tersebut, bukan [/].
Setelah AlmaLinux 9.8 dipasang, [/root/.bashrc] sudah berisi alias -i untuk perintah rm, cp, dan mv seperti di bawah ini. Akun pengguna biasa tidak memiliki alias ini.
~]# grep alias /root/.bashrc
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'Di akun atau OS Linux yang tidak memiliki alias ini, cukup tambahkan satu baris di bagian paling bawah [~/.bashrc], lalu muat ulang.
# Tambahkan di baris paling bawah ~/.bashrc
alias rm='rm -i'
# Muat ulang
source ~/.bashrc
ℹ️ Pemberitahuan Afiliasi
Konten di situs ini berisi tautan afiliasi. Jika pengunjung membeli produk atau layanan melalui tautan tersebut, situs ini menerima komisi dari penjual. Harga yang dibayar pembeli(turun saat ada diskon promo ↓), tidak naik karena hal ini. Harga, diskon, dan informasi stok yang ditampilkan berlaku pada saat penulisan dan bisa berbeda dengan kondisi sebenarnya, jadi pastikan kembali di situs penjual sebelum membeli. Pemilihan dan penilaian produk dibuat berdasarkan standar kami sendiri, dan ada tidaknya komisi tidak memengaruhi urutan maupun isi penilaian.