Linux / Perintah / rm / Perintah untuk menghapus file atau direktori
Perintah rm di Linux menghapus file, dan menggunakan opsi -r juga menghapus direktori beserta isinya. Karena umumnya tidak melewati tempat sampah, pastikan untuk memeriksa jalur dan item yang akan dihapus sebelum menjalankan perintah.
Hal-hal yang harus diperiksa sebelum penghapusan
Artikel ini didasarkan pada rm dari GNU coreutils dan shell Bash. File yang dihapus dengan rm mungkin sulit untuk dipulihkan dengan metode normal. Cadangkan file penting secara terpisah, dan periksa lokasi Anda saat ini serta target terlebih dahulu dengan pwd dan ls -la.
rm tidak menampilkan pesan konfirmasi setiap saat. Perilaku default tergantung pada izin tulis file, apakah input berasal dari terminal, dll., dan pengaturan alias di shell juga dapat mempengaruhinya. Untuk mengonfirmasi setiap file secara eksplisit, gunakan -i. Untuk kondisi secara rinci, lihat manual rm GNU.
Menghapus File
Di bawah ini adalah contoh membuat direktori latihan baru dan menyiapkan file untuk dihapus di dalamnya. Jika rm-practice sudah ada di lokasi saat ini, gunakan lokasi kosong lain, dan jika perintah pertama gagal, jangan melanjutkan eksekusi.
mkdir rm-practice
cd rm-practice
printf 'practice\n' > sample.txt
ls
Setelah memastikan bahwa sample.txt ditampilkan, jalankan perintah di bawah ini. Pada pesan konfirmasi, masukkan y untuk dihapus, atau masukkan n jika Anda tidak ingin menghapus.
rm -i sample.txt
ls
Jika Anda menyetujui penghapusan, sample.txt tidak akan muncul lagi dalam hasil ls. rm sample.txt dapat menghapus file tanpa konfirmasi, jadi jangan menganggap bahwa pesan konfirmasi akan selalu muncul.
Menghapus Direktori
Untuk menghapus direktori yang kosong saja, Anda dapat menggunakan rmdir. Biasanya akan gagal jika direktori tidak kosong.
mkdir empty-dir
rmdir empty-dir
Untuk menghapus direktori yang berisi konten, gunakan -r. Perintah di bawah ini membuat direktori dan file latihan, memverifikasinya, dan kemudian menghapusnya. Menggunakan -i bersama-sama akan meminta konfirmasi untuk setiap item.
mkdir example-dir
printf 'practice\n' > example-dir/file.txt
ls -la example-dir
rm -ri example-dir
Pesan konfirmasi mungkin menanyakan tentang memasuki direktori dan menghapus file serta direktori. Sebelum menjawab setiap pertanyaan, periksa namanya dan setujui hanya item yang ingin Anda hapus. Menolak beberapa pertanyaan dapat mengakibatkan direktori tetap ada atau menampilkan kesalahan.
Karakter wildcard dan file tersembunyi
Pola seperti *.txt diperluas oleh shell menjadi nama yang cocok sebelum rm dijalankan. Sebelum menghapus beberapa file sekaligus, periksa terlebih dahulu nama yang cocok dengan perintah seperti berikut ini daripada menggunakan perintah hapus.
printf '%s\n' ./*.txt
Setelah memastikan bahwa nama keluaran adalah target yang dimaksud, gunakan rm -i ./*.txt hanya bila diperlukan. Jika tidak ada file yang cocok, pola mungkin ditampilkan apa adanya atau perilaku perintah dapat berubah tergantung pengaturan Bash. Menyertakan seluruh pola dalam tanda kutip mencegah perluasan nama file seperti biasa.
Dalam pengaturan default Bash, * tidak menyertakan item tersembunyi yang diawali dengan titik, tetapi ini dapat bervariasi tergantung pada pengaturan seperti dotglob. Perintah yang menghapus rentang luas seperti rm -rf * tanpa pemeriksaan dapat menyebabkan kerusakan signifikan jika lokasi saat ini dan hasil ekspansi salah diinterpretasikan. Perbedaan untuk setiap pengaturan dapat diperiksa di Dokumentasi ekspansi nama file Bash.
Opsi dan jalur yang sering digunakan
-i: Konfirmasi setiap item yang akan dihapus. Item yang ditolak tidak akan dihapus.-r: Hapus secara rekursif isi di dalam direktori.-f: Abaikan target yang tidak ada dan jangan tampilkan pesan konfirmasi. Opsi ini tidak menyelesaikan kesalahan izin.-v: Keluarkan item yang dihapus untuk membantu memverifikasi hasil.
Jalur dengan spasi harus diapit dalam tanda kutip seperti rm -i "my file.txt". Jika nama file dimulai dengan tanda hubung, tentukan setelah -- seperti rm -i -- -draft.txt untuk mencegahnya ditafsirkan sebagai opsi.
Jika terjadi kesalahan izin, periksa apakah Anda memiliki izin yang diperlukan di direktori induk dari target, dan konsultasikan dengan administrator. Apakah penghapusan memungkinkan tidak hanya ditentukan oleh izin tulis dari file itu sendiri. Setelah penghapusan, periksa kembali daftar direktori, dan jika Anda telah menghapus file yang Anda butuhkan, segera hentikan operasi dan periksa prosedur cadangan atau pemulihan dari lingkungan produksi.




