Kembali ke Artikel

Belajar Linux dari Nol #5: Cara Copy dan Hapus File di Linux

Solusi IT

Cara copy file di Linux lewat terminal cukup satu perintah: cp namafile tujuan. Untuk memindahkan atau mengganti nama file pakai mv, dan untuk menghapus pakai rm. Tiga perintah itu, ditambah mkdir untuk membuat folder dan touch untuk membuat file kosong, sudah cukup untuk mengelola file sehari-hari tanpa menyentuh file manager sama sekali.

Artikel ini bagian kelima dari seri Belajar Linux dari Nol. Di bagian ini kita praktik semua perintah pengelolaan file dan folder, termasuk hal yang sering bikin pemula celaka: kenapa rm -rf berbahaya dan kenapa file yang dihapus di terminal tidak masuk recycle bin.

Prasyaratnya ringan. Kamu sudah bisa berpindah folder dengan cd dan melihat isi folder dengan ls. Kalau masih ragu soal posisi folder seperti /home atau /etc, baca dulu Belajar Linux dari Nol #4: Struktur Direktori Linux Lengkap. Semua contoh di sini dites di Ubuntu 24.04 dengan GNU coreutils 9.4, tapi perintahnya sama di hampir semua distro Linux.

Persiapan: Membuat Folder dan File dengan mkdir dan touch

Kita mulai dari area latihan yang aman di home directory. Buat satu folder khusus supaya kalau ada salah hapus, tidak ada file penting yang ikut hilang.

cd ~
mkdir latihan-file
cd latihan-file

mkdir singkatan dari make directory. Kalau mau membuat beberapa folder bertingkat sekaligus, tambahkan opsi -p:

mkdir -p proyek/catatan/harian

Tanpa -p, perintah di atas gagal karena folder proyek dan catatan belum ada. Dengan -p, semua folder di jalurnya dibuat sekaligus.

Sekarang buat beberapa file kosong dengan touch:

touch catatan.txt tugas.txt data.csv

Cek hasilnya dengan ls:

ls

Output yang diharapkan:

catatan.txt  data.csv  proyek  tugas.txt

Fungsi asli touch sebenarnya memperbarui timestamp file. Tapi karena dia otomatis membuat file baru kalau filenya belum ada, perintah ini jadi cara tercepat membuat file kosong untuk latihan atau placeholder.

Cara Copy File di Linux dengan Perintah cp

Format dasarnya: cp sumber tujuan. Tujuan bisa berupa nama file baru atau nama folder.

cp catatan.txt catatan-backup.txt
cp tugas.txt proyek/

Baris pertama menyalin catatan.txt menjadi file baru bernama catatan-backup.txt di folder yang sama. Baris kedua menyalin tugas.txt ke dalam folder proyek dengan nama yang sama. Perhatikan garis miring setelah proyek. Tidak wajib, tapi kebiasaan bagus karena menegaskan bahwa tujuannya folder, bukan nama file.

Cek dengan ls proyek, harusnya muncul:

catatan  tugas.txt

Copy Folder Harus Pakai cp -r

Kalau kamu coba menyalin folder dengan cp biasa, Linux menolak:

cp proyek proyek-cadangan

Output di Ubuntu 24.04:

cp: -r not specified; omitting directory 'proyek'

Di distro atau versi coreutils yang lebih lama, pesannya berbunyi cp: omitting directory 'proyek'. Maksudnya sama: folder dilewati, tidak disalin. Solusinya tambahkan opsi -r yang artinya recursive, alias salin folder beserta seluruh isinya sampai ke tingkat terdalam:

cp -r proyek proyek-cadangan

Sekarang ls akan menampilkan proyek-cadangan lengkap dengan semua isi di dalamnya.

Hindari Menimpa File Tanpa Sadar: cp -i

Ini jebakan yang jarang disadari pemula. Kalau file tujuan sudah ada, cp langsung menimpanya tanpa bertanya. Tidak ada peringatan, tidak ada konfirmasi, isi file lama hilang begitu saja. Supaya aman, biasakan pakai opsi -i (interactive):

cp -i catatan.txt catatan-backup.txt

Karena catatan-backup.txt sudah ada dari langkah sebelumnya, terminal akan bertanya dulu:

cp: overwrite 'catatan-backup.txt'?

Ketik y lalu Enter untuk menimpa, atau n untuk membatalkan. Opsi -i juga berlaku untuk mv dan rm.

Memindahkan dan Rename File dengan mv

Di Linux, memindahkan dan mengganti nama file itu satu perintah yang sama: mv. Logikanya, rename hanyalah memindahkan file ke jalur baru dengan nama berbeda.

mv data.csv proyek/
mv catatan.txt catatan-utama.txt

Baris pertama memindahkan data.csv ke folder proyek. Baris kedua mengganti nama catatan.txt menjadi catatan-utama.txt. Kamu bahkan bisa melakukan keduanya sekaligus, pindah folder plus ganti nama dalam satu perintah:

mv catatan-utama.txt proyek/catatan-final.txt

File berpindah ke folder proyek dan namanya berubah menjadi catatan-final.txt. Berbeda dengan cp, perintah mv tidak butuh opsi -r untuk folder. mv proyek arsip langsung jalan karena yang dipindah hanya “alamat” foldernya, bukan isinya satu per satu.

Menghapus File dan Folder: rm dan rmdir

Menghapus file cukup dengan rm:

rm catatan-backup.txt

Tidak ada output kalau berhasil. Di Linux, diam berarti sukses. Cek saja dengan ls untuk memastikan filenya hilang.

Untuk folder kosong, ada perintah khusus rmdir:

mkdir folder-kosong
rmdir folder-kosong

rmdir hanya mau menghapus folder yang benar-benar kosong. Kalau masih ada isinya, dia menolak. Ini fitur pengaman, bukan bug.

Menghapus Folder Beserta Isinya dengan rm -r

Folder yang ada isinya dihapus dengan rm -r:

rm -r proyek-cadangan

Sama seperti di cp, opsi -r artinya recursive: hapus folder dan seluruh isinya sampai ke dasar. Kalau mau lebih hati-hati, gabungkan dengan -i supaya setiap file dikonfirmasi satu per satu sebelum dihapus.

Kenapa rm -rf Berbahaya dan Tidak Ada Recycle Bin

Kamu mungkin sering lihat perintah rm -rf di tutorial internet. Opsi -f artinya force: jangan tanya apa pun, jangan tampilkan error, hapus saja semuanya. Digabung -r, perintah ini menghapus folder apa pun beserta seluruh isinya tanpa satu pun konfirmasi.

Masalahnya, terminal Linux tidak punya recycle bin. File yang dihapus lewat rm tidak pindah ke trash seperti di file manager Ubuntu atau Windows. Dia langsung lepas dari sistem file. Memulihkannya butuh tool forensik khusus, itu pun tidak dijamin berhasil, apalagi di SSD modern.

Kesalahan klasiknya sepele: salah ketik path. rm -rf ~/latihan /file-lama dengan spasi nyasar sebelum garis miring akan dibaca sebagai dua target terpisah, dan salah satunya adalah folder di root sistem. Tim kami di Arrazy rutin bekerja di server klien untuk berbagai sistem aplikasi, dan aturan internalnya sederhana: sebelum menekan Enter pada perintah rm -rf, baca ulang path-nya minimal dua kali, dan kalau ragu jalankan ls dulu pada path yang sama untuk memastikan apa yang akan terhapus. Kebiasaan kecil ini jauh lebih murah daripada memulihkan data dari backup.

Wildcard: Mengelola Banyak File Sekaligus dengan *.txt

Wildcard * mewakili karakter apa pun dengan panjang berapa pun. Pola *.txt artinya semua file yang namanya berakhiran .txt. Ini yang membuat terminal jauh lebih cepat daripada file manager untuk operasi massal.

touch laporan1.txt laporan2.txt laporan3.txt gambar.png
ls *.txt

Output yang diharapkan:

laporan1.txt  laporan2.txt  laporan3.txt  tugas.txt

File gambar.png tidak ikut karena tidak cocok dengan polanya. Wildcard bisa dipakai di hampir semua perintah file:

mkdir arsip
cp *.txt arsip/
rm laporan*.txt

Baris kedua menyalin semua file .txt ke folder arsip sekali jalan. Baris ketiga menghapus semua file yang namanya diawali laporan dan diakhiri .txt. Hati-hati: rm * tanpa pola apa pun menghapus semua file di folder aktif. Selalu cek dulu dengan ls memakai pola yang sama sebelum menjalankan rm dengan wildcard.

Latihan Mini: Membangun dan Merapikan Struktur Folder Proyek

Sekarang gabungkan semuanya. Skenarionya: kamu punya proyek tulisan blog yang filenya berantakan, lalu merapikannya seperti struktur proyek sungguhan.

  1. Buat struktur foldernya sekali jalan:
    cd ~/latihan-file
    mkdir -p blog/{draf,publish,aset}

    Kurung kurawal di situ adalah brace expansion, cara cepat membuat tiga subfolder sekaligus: draf, publish, dan aset.

  2. Buat file draf dan aset dummy:
    cd blog
    touch draf-linux.txt draf-golang.txt draf-laravel.txt logo.png banner.png
  3. Pindahkan semua draf ke foldernya dengan wildcard:
    mv draf-*.txt draf/
    mv *.png aset/
  4. Anggap draf Linux sudah selesai. Pindahkan ke publish sambil ganti nama:
    mv draf/draf-linux.txt publish/artikel-linux.txt
  5. Buat backup seluruh folder blog:
    cd ~/latihan-file
    cp -r blog blog-backup
  6. Verifikasi hasil akhirnya:
    ls blog/draf blog/publish blog/aset

    Output yang diharapkan:

    blog/aset:
    banner.png  logo.png
    
    blog/draf:
    draf-golang.txt  draf-laravel.txt
    
    blog/publish:
    artikel-linux.txt
  7. Terakhir, bersihkan backup yang sudah tidak dipakai:
    rm -r blog-backup

Kalau semua langkah jalan mulus, kamu sudah menguasai siklus lengkap pengelolaan file: buat, salin, pindah, rename, dan hapus.

Error yang Sering Dialami Pemula

cp: -r not specified; omitting directory

Muncul saat menyalin folder tanpa opsi -r. Di coreutils lama pesannya cp: omitting directory. Penyebabnya sama: cp tidak mau menyalin folder kecuali diminta eksplisit. Solusi: tambahkan -r, misalnya cp -r proyek backup-proyek.

rm: cannot remove ‘folder’: Is a directory

Muncul saat menghapus folder dengan rm polos. rm tanpa opsi hanya bekerja pada file. Solusi: pakai rm -r namafolder untuk folder beserta isinya, atau rmdir namafolder kalau foldernya kosong.

rmdir: failed to remove ‘folder’: Directory not empty

Muncul saat rmdir dipakai pada folder yang masih ada isinya, termasuk file tersembunyi yang tidak terlihat di ls biasa. Cek dulu dengan ls -a namafolder. Kalau isinya memang mau dibuang semua, pakai rm -r namafolder.

File Tertimpa Tanpa Peringatan

Ini bukan pesan error, justru itu bahayanya: tidak ada pesan apa pun. cp dan mv menimpa file tujuan yang sudah ada secara diam-diam. Kalau kamu baru sadar setelah kejadian, isi file lama sudah tidak bisa dikembalikan. Pencegahannya: biasakan cp -i dan mv -i supaya selalu ada konfirmasi sebelum menimpa. Beberapa orang bahkan membuat alias permanen untuk ini, yang akan kita bahas saat masuk materi shell script.

Lanjut ke Bagian Berikutnya

Kamu sekarang bisa membuat, menyalin, memindahkan, dan menghapus file dengan aman, termasuk operasi massal pakai wildcard. Satu keterampilan yang belum kita sentuh: mengubah isi file langsung dari terminal. Itu materi bagian berikutnya, “Belajar Linux dari Nol #6: Cara Edit File di Terminal (Nano)”, yang terbit menyusul. Pantau daftar lengkapnya di halaman hub seri Belajar Linux.

Referensi

BACA JUGA

Artikel Lainnya di Kategori Linux

Ingin Membaca Artikel Lainnya?

Temukan lebih banyak insight dan tips tentang teknologi dan bisnis digital.

Lihat Semua Artikel