Pada bab sebelumnya Anda telah belajar menjelajahi filesystem menggunakan pwd, ls, dan cd. Sekarang saatnya memanipulasi isi filesystem tersebut. Bab ini membahas perintah-perintah untuk membuat file dan direktori, menyalin, memindahkan, serta menghapusnya, melihat isi file, mencari file, menggunakan wildcard, dan membuat symbolic link. Keterampilan ini adalah inti dari pekerjaan sehari-hari di terminal dan akan terus Anda gunakan pada bab-bab selanjutnya.
Membuat File dan Direktori
Langkah pertama dalam mengelola file adalah menciptakannya. Linux menyediakan perintah sederhana untuk membuat file kosong dan direktori baru.
touch: Membuat File Kosong
Perintah touch digunakan untuk membuat file baru yang kosong. Cukup ketik touch diikuti nama file yang ingin dibuat:
touch catatan.txtJika file belum ada, touch akan membuatnya. Jika file sudah ada, touch akan memperbarui waktu modifikasinya tanpa mengubah isi file. Anda juga dapat membuat beberapa file sekaligus dalam satu perintah:
touch file1.txt file2.txt file3.txtmkdir: Membuat Direktori
Perintah mkdir (singkatan dari make directory) digunakan untuk membuat direktori baru:
mkdir proyekPerintah ini membuat direktori bernama proyek di dalam direktori aktif Anda.
mkdir -p: Membuat Direktori Bertingkat
Secara default, mkdir hanya dapat membuat satu tingkat direktori. Jika Anda ingin membuat direktori yang bersarang, misalnya proyek/dokumen/2026, dan direktori induknya belum ada, gunakan opsi -p (parents):
mkdir -p proyek/dokumen/2026Opsi -p membuat seluruh direktori induk yang diperlukan sekaligus, tanpa menampilkan kesalahan meskipun sebagian direktori sudah ada.
Menyalin, Memindahkan, dan Menghapus
Setelah file dan direktori dibuat, Anda perlu mengetahui cara menyalin, memindahkan, dan menghapusnya.
cp: Menyalin File atau Direktori
Perintah cp (singkatan dari copy) digunakan untuk menyalin file atau direktori. Polanya adalah cp sumber tujuan:
cp catatan.txt backup.txtPerintah ini menyalin catatan.txt menjadi file baru bernama backup.txt. Untuk menyalin sebuah direktori beserta seluruh isinya, gunakan opsi -r (recursive):
cp -r proyek proyek-backupTanpa opsi -r, cp akan menolak menyalin direktori. Opsi ini memastikan seluruh subdirektori dan file di dalamnya ikut tersalin.
Beberapa opsi tambahan yang berguna untuk cp:
-i(interactive): meminta konfirmasi sebelum menimpa file tujuan yang sudah ada. Sangat disarankan untuk dibiasakan, terutama saat pertama kali belajar, misalnyacp -i catatan.txt backup.txt.-v(verbose): menampilkan setiap file yang sedang disalin, berguna untuk memantau proses penyalinan yang melibatkan banyak file.-a(archive): menyalin sambil mempertahankan permission, kepemilikan, dan timestamp asli, serta bekerja secara rekursif tanpa perlu menambahkan-rlagi. Opsi ini cocok digunakan saat menyalin data yang atribut aslinya perlu dijaga, misalnyacp -a proyek proyek-backup.
mv: Memindahkan atau Mengganti Nama
Perintah mv (singkatan dari move) memiliki dua fungsi: memindahkan file ke lokasi lain, atau mengganti nama file. Polanya sama dengan cp, yaitu mv sumber tujuan:
mv catatan.txt dokumen/Perintah ini memindahkan catatan.txt ke dalam direktori dokumen. Jika tujuan adalah nama file, mv justru mengganti namanya:
mv catatan.txt catatan-baru.txtBerbeda dengan cp, perintah mv tidak memerlukan opsi rekursif untuk memindahkan direktori. Sama seperti cp, mv juga mendukung opsi -i untuk meminta konfirmasi sebelum menimpa file tujuan, dan -v untuk menampilkan proses pemindahan secara rinci. Karena mv dapat menimpa file tujuan tanpa peringatan apa pun secara default, membiasakan diri dengan mv -i adalah kebiasaan yang baik ketika Anda belum yakin dengan hasil akhirnya.
rm: Menghapus File
Perintah rm (singkatan dari remove) digunakan untuk menghapus file atau direktori:
rm catatan.txtUntuk menghapus direktori beserta seluruh isinya, gunakan opsi -r (recursive). Opsi -f (force) membuat penghapusan berjalan tanpa meminta konfirmasi:
rm -r proyek-backup
rm -rf direktori-lamaPerlu ditegaskan bahwa rm tidak memindahkan file ke Recycle Bin. File yang dihapus dengan rm hilang secara permanen dan sangat sulit untuk dipulihkan. Karena itu, gunakan rm dengan hati-hati, terutama ketika dikombinasikan dengan opsi -rf.
Sebagai langkah pengamanan, terutama saat masih belajar, biasakan menambahkan opsi -i agar rm meminta konfirmasi sebelum menghapus setiap file:
rm -i catatan.txtJika Anda menginginkan perilaku yang lebih mirip Recycle Bin di Windows atau Trash di macOS, GNOME menyediakan mekanisme trash yang dapat diakses dari terminal melalui perintah gio trash (bawaan GLib/GNOME, tersedia di Ubuntu maupun Fedora). Perintah ini memindahkan file ke Trash, bukan menghapusnya secara permanen, sehingga file masih dapat dipulihkan melalui aplikasi Files:
gio trash catatan.txtAlternatif lain adalah paket pihak ketiga trash-cli, yang menyediakan perintah seperti trash-put dengan fungsi serupa. Untuk penghapusan yang benar-benar permanen dan disengaja, seperti membersihkan file cache atau direktori sementara, rm tetaplah perintah yang tepat.
rmdir: Menghapus Direktori Kosong
Perintah rmdir (singkatan dari remove directory) hanya dapat menghapus direktori yang kosong:
rmdir direktori-kosongJika direktori masih berisi file atau subdirektori, rmdir akan menolaknya dengan pesan kesalahan. Ini menjadikan rmdir pilihan yang lebih aman ketika Anda hanya ingin menghapus direktori kosong.
Melihat Isi File
Setelah membuat file, Anda tentu ingin membaca isinya. Linux menyediakan beberapa perintah untuk menampilkan isi file teks.
cat: Menampilkan Seluruh Isi
Perintah cat (singkatan dari concatenate) menampilkan seluruh isi sebuah file sekaligus:
cat catatan.txtPerintah ini mencetak seluruh isi file ke layar. cat juga dapat digunakan untuk menggabungkan beberapa file, misalnya cat file1.txt file2.txt yang menampilkan isi keduanya secara berurutan. Namun, untuk file yang sangat panjang, cat kurang nyaman karena isinya langsung menggulung ke bawah.
less dan more: Membaca File Halaman per Halaman
Untuk file yang panjang, gunakan less atau more. Keduanya menampilkan isi file satu layar pada satu waktu:
less catatan-panjang.txtless lebih modern dan fleksibel daripada more. Di dalam less, Anda dapat menggulir dengan tombol panah atau Page Up/Page Down, mencari teks dengan mengetik /kata, dan keluar dengan menekan tombol q. more hanya mendukung navigasi maju secara terbatas, sehingga less adalah pilihan yang lebih disarankan.
head dan tail: Melihat Awal dan Akhir File
head menampilkan sepuluh baris pertama sebuah file, sedangkan tail menampilkan sepuluh baris terakhir:
head catatan-panjang.txt
tail catatan-panjang.txtAnda dapat menentukan jumlah baris dengan opsi -n, misalnya head -n 5 file.txt untuk lima baris pertama. Perintah tail sangat berguna untuk memantau file log yang terus bertambah, terutama dengan opsi -f (follow) yang menampilkan baris baru secara real-time.
Mencari File
Semakin banyak file yang Anda miliki, semakin penting kemampuan menemukannya dengan cepat.
find: Pencarian Berdasarkan Kriteria
Perintah find adalah alat pencarian paling kuat di Linux. Pola dasarnya adalah find lokasi -name pola:
find ~ -name "catatan.txt"Perintah ini mencari file bernama catatan.txt di dalam direktori home Anda dan seluruh subdirektorinya. Anda dapat menggunakan pola wildcard, misalnya find ~ -name "*.pdf" untuk mencari semua file PDF.
Selain berdasarkan nama, find juga dapat menyaring hasil berdasarkan tipe file dengan opsi -type, yang sering dipakai berdampingan dengan -name:
find ~ -type f -name "*.pdf": hanya mencari file biasa (f) berekstensi.pdf, mengabaikan direktori yang kebetulan bernama serupa.find ~ -type d -name "proyek*": hanya mencari direktori (d) yang namanya diawaliproyek.
find juga dapat mencari berdasarkan ukuran (-size) dan waktu modifikasi (-mtime), namun kriteria -name dan -type di atas sudah cukup untuk sebagian besar kebutuhan sehari-hari sebagai pemula.
locate: Pencarian dari Database
locate bekerja dengan cara berbeda: ia mencari melalui database yang telah diindeks sebelumnya, bukan menelusuri filesystem secara langsung. Hasilnya, locate jauh lebih cepat daripada find:
locate catatan.txtKarena mengandalkan database, hasil locate bisa jadi tidak mencerminkan file yang baru saja dibuat atau dihapus. Anda dapat memperbarui database-nya secara manual dengan perintah sudo updatedb, meskipun pada umumnya pembaruan sudah dijadwalkan otomatis setiap hari.
Perintah locate tidak selalu terpasang secara default dan perlu diinstal terlebih dahulu. Implementasi yang digunakan Ubuntu 26.04 LTS maupun Fedora Workstation 44 saat ini adalah plocate, versi modern dari locate yang lebih cepat dan lebih hemat ruang dibandingkan mlocate lama, sambil tetap kompatibel dengan perintah locate yang sama:
sudo apt install plocate # di Ubuntu
sudo dnf install plocate # di FedoraSetelah terpasang, Anda tetap memanggilnya dengan perintah locate seperti biasa; nama paket plocate hanya merujuk pada implementasi di baliknya.
which dan whereis: Menemukan Lokasi Program
which menampilkan lokasi dari program yang akan dijalankan ketika Anda mengetik perintahnya:
which python3Perintah ini menunjukkan path lengkap dari program python3, misalnya /usr/bin/python3. Sementara itu, whereis memberikan informasi lebih lengkap, termasuk lokasi file biner, halaman manual, dan kode sumber:
whereis python3Kedua perintah ini berguna untuk memastikan program yang dimaksud memang terpasang dan mengetahui lokasinya.
Wildcard dan Globbing
Wildcard adalah karakter khusus yang digunakan untuk mencocokkan beberapa nama file sekaligus. Mekanisme pencocokan ini disebut globbing dan sangat berguna ketika bekerja dengan banyak file. Tiga wildcard utama adalah:
*: mencocokkan nol atau lebih karakter apa pun. Contohnya,*.txtcocok dengan semua file berakhiran.txt.?: mencocokkan tepat satu karakter. Contohnya,file?.txtcocok denganfile1.txt, tetapi tidak denganfile12.txt.[abc]: mencocokkan salah satu karakter dalam kurung. Contohnya,file[123].txtcocok denganfile1.txt,file2.txt, ataufile3.txt.
Wildcard biasanya dikombinasikan dengan perintah lain. Sebagai contoh:
ls *.txt
rm file?.log
cp *.jpg gambar/Perintah pertama menampilkan semua file .txt, perintah kedua menghapus file log dengan satu karakter, dan perintah ketiga menyalin semua file JPG ke direktori gambar. Wildcard membuat pekerjaan yang melibatkan banyak file menjadi jauh lebih efisien.
Menangani Nama File dengan Spasi atau Karakter Khusus
Sebagaimana disinggung pada Chapter 11, Linux memperbolehkan spasi dalam nama file, misalnya Catatan Rapat.txt. Namun, shell menafsirkan spasi sebagai pemisah argumen, sehingga perintah seperti rm Catatan Rapat.txt justru akan dianggap sebagai dua argumen terpisah, yaitu Catatan dan Rapat.txt, dan bisa berakibat fatal jika salah satu nama tersebut kebetulan cocok dengan file lain.
Untuk menangani nama file semacam ini dengan aman, Anda dapat membungkusnya dengan tanda kutip, atau menggunakan escape character berupa \ sebelum spasi:
rm "Catatan Rapat.txt"
rm Catatan\ Rapat.txtCara paling praktis dan minim risiko salah ketik adalah mengetik sebagian nama file lalu menekan Tab untuk memanfaatkan tab completion (lihat Chapter 14), karena shell akan otomatis menambahkan tanda escape yang diperlukan untuk Anda.
Symbolic Link
Symbolic link (atau symlink) adalah file khusus yang menunjuk ke file atau direktori lain. Bayangkan symlink sebagai "pintasan" seperti shortcut di Windows. Perintah untuk membuatnya adalah ln dengan opsi -s (symbolic):
ln -s /home/nama-pengguna/proyek pintasan-proyekPerintah ini membuat symlink bernama pintasan-proyek yang menunjuk ke direktori /home/nama-pengguna/proyek. Ketika Anda mengakses pintasan-proyek, sebenarnya Anda mengakses direktori aslinya.
Symlink berguna untuk membuat akses cepat ke file atau direktori yang lokasinya panjang, atau ketika sebuah program mengharapkan file di lokasi tertentu tetapi file aslinya berada di tempat lain. Perhatikan bahwa jika target asli dihapus, symlink akan menjadi "putus" dan tidak berfungsi, meskipun symlink itu sendiri tetap ada.
Perlu diketahui, ln tanpa opsi -s sebenarnya membuat jenis link yang berbeda, yaitu hard link. Berbeda dengan symlink yang hanya berisi "petunjuk" ke lokasi lain, hard link menunjuk langsung ke nomor inode yang sama dengan file aslinya, sebagaimana dijelaskan pada konsep inode di Chapter 11. Konsekuensinya, hard link tetap berfungsi normal meskipun nama file aslinya dihapus, karena data sesungguhnya baru benar-benar hilang setelah tidak ada satu pun nama yang merujuk ke inode tersebut. Meski demikian, hard link memiliki keterbatasan, yaitu tidak dapat menunjuk ke direktori dan tidak dapat melintasi partisi atau filesystem yang berbeda, sehingga symlink jauh lebih umum digunakan dalam pekerjaan sehari-hari.
Pada bab ini Anda telah mempelajari perintah-perintah dasar untuk mengelola file dan direktori: membuat file dengan touch, membuat direktori dengan mkdir dan mkdir -p, menyalin dengan cp (beserta opsi -i, -v, dan -a), memindahkan dan mengganti nama dengan mv, serta menghapus dengan rm, rmdir, dan alternatif yang lebih aman melalui gio trash. Anda juga telah mempelajari cara melihat isi file menggunakan cat, less, more, head, dan tail, mencari file dengan find (termasuk penyaringan -type), locate/plocate, which, dan whereis, memanfaatkan wildcard beserta cara menangani nama file berspasi, serta membuat symbolic link dan mengenal perbedaannya dengan hard link.
Pada bab berikutnya, Anda akan mempelajari cara mendapatkan bantuan ketika lupa atau tidak memahami sebuah perintah, menggunakan man, --help, info, dan tldr.

