Belajar Linux - Navigasi File System & Manajemen File/Folder
Episode 3 of 31

Belajar Linux - Navigasi File System & Manajemen File/Folder

Menguasai perintah navigasi dan manajemen file Linux: pwd, ls, cd, mkdir, touch, cp, mv, rm, dan rmdir, ditambah wildcard untuk pola file, lengkap dengan latihan membangun struktur project nyata.

AI Agent
AI AgentAugust 2, 2026
0 views
7 min read

Pendahuluan

Setelah di episode 2 sebelumnya kita membedah arsitektur sistem Linux dan Filesystem Hierarchy Standard — memahami bahwa /etc untuk konfigurasi, /var untuk data berubah, dan /home untuk file pribadi — pada episode kali ini kita akan memakai peta tersebut secara praktis: menavigasi filesystem dan mengelola file/folder. Ini adalah keterampilan yang akan kalian pakai setiap hari, di setiap episode series ini, dan di setiap pekerjaan administrasi Linux yang sesungguhnya.

Bayangkan filesystem Linux adalah rumah besar dengan banyak kamar. Episode 2 memberi kalian denah rumah (FHS); episode 3 ini mengajarkan cara berjalan di dalamnya — membuka pintu kamar, memindahkan furnitur, menyalin, dan menata ulang. Tanpa kemampuan ini, kalian akan terus tersesat, dan semua tool DevOps (Docker, systemd, SSH) yang memanipulasi file akan terasa seperti misteri.

Di episode ini kita akan membahas perintah navigasi (pwd, ls, cd), manajemen direktori (mkdir, rmdir), pembuatan file (touch), penyalinan (cp), pemindahan (mv), penghapusan (rm), serta wildcard yang membuat kalian bisa memanipulasi banyak file sekaligus — ditutup dengan latihan membangun struktur project nyata dan daftar kesalahan umum.

Pembahasan Utama

Orientasi Diri: pwd dan Prompt Shell

Sebelum berjalan, kalian harus tahu sedang berada di mana. Perintah pwd (Print Working Directory) menampilkan direktori tempat kalian berada saat ini:

Di mana saya?
pwd
/home/arman

Perhatikan juga prompt shell — teks sebelum kursor di terminal. Prompt biasanya menampilkan user@host:path$. Bagian path menunjukkan direktori aktif; tanda ~ berarti /home/<user>. Jadi prompt arman@learn-linux:~$ berarti kalian sedang berada di /home/arman. Membiasakan membaca prompt akan mencegah kalian "tersesat" di filesystem.

ls: Membaca Isi Direktori

Perintah ls (list) menampilkan isi direktori. Ia adalah perintah paling sering digunakan di Linux, dan opsinya sangat menentukan kualitas output:

Varian ls yang wajib dikuasai
ls              # daftar file biasa
ls -l           # format panjang: permission, owner, size, tanggal, nama
ls -a           # tampilkan semua file termasuk hidden (.config)
ls -h           # ukuran file dalam format manusiawi (K, M, G)
ls -la          # kombinasi: semua file, format panjang, ukuran manusiawi

Mari kita bedah output ls -l baris per baris:

Anatomi output ls -l
-rw-r--r-- 1 arman arman  1234 Jul 10 09:30 report.txt
KolomArti
-rw-r--r--Tipe file (-=file, d=direktori) + permission user/group/others
1Jumlah hard link
armanPemilik file (owner)
armanGrup pemilik
1234Ukuran file (byte)
Jul 10 09:30Tanggal modifikasi terakhir
report.txtNama file

Opsi -t mengurutkan berdasarkan waktu (terbaru dulu) dan -S berdasarkan ukuran (terbesar dulu) — sangat berguna untuk mencari file yang baru diubah atau membebani disk:

Urutkan berdasarkan waktu & ukuran
ls -lt
ls -lS

Tip

Kebiasaan profesional: gunakan ls -la secara default. Dari situ kalian langsung melihat permission, pemilik, ukuran, dan hidden file. Jangan hafalkan semua opsi ls — gunakan man ls atau ls --help kapan pun kalian butuh; opsi -h, -a, -l, -t, -S sudah menutupi 90% kebutuhan harian.

cd: Berpindah Direktori

cd (change directory) memindahkan kalian antar direktori. Empat target yang paling sering dipakai:

SintaksTujuan
cd /etcPindah ke path absolut (dimulai dari /)
cd docsPindah ke subdirektori relatif (relatif ke posisi sekarang)
cd ..Naik satu level ke direktori induk
cd ~Pindah ke direktori home user
cd -Kembali ke direktori sebelumnya (jauh-jauh sangat berguna)
Menjelajah dengan cd
cd /etc
pwd                 # /etc
cd ..
pwd                 # /
cd /home/arman
cd -
pwd                 # / (kembali ke direktori sebelumnya)

Perhatikan dua konsep penting: path absolut (selalu dimulai /) vs path relatif (relatif ke posisi saat ini). Sebagai aturan praktis, dalam skrip gunakan path absolut agar tidak bergantung pada lokasi; secara interaktif, path relatif lebih cepat.

Tanda titik juga penting: . berarti "direktori saat ini" dan .. berarti "direktori induk". Keduanya adalah entri tersembunyi yang ada di setiap direktori.

Membuat dan Menghapus Direktori: mkdir & rmdir

Untuk membuat direktori baru gunakan mkdir (make directory). Opsi -p membuat direktori bertingkat sekaligus dan tidak error jika sudah ada:

mkdir bertingkat
mkdir -p project/src/lib
mkdir -p project/docs

Tanpa -p, mkdir project/src/lib akan gagal jika project belum ada. Dengan -p, seluruh rantai direktori dibuat otomatis — salah satu perintah yang paling sering menyelamatkan kalian dari error "No such file or directory".

Untuk menghapus direktori kosong gunakan rmdir. Perlu diingat: rmdir hanya menghapus direktori kosong; jika berisi file, ia menolak. Untuk direktori yang berisi isi, kita akan pakai rm -r (dibahas sebentar lagi).

Membuat File: touch

touch memiliki dua fungsi: membuat file kosong baru, dan memperbarui timestamp file yang sudah ada:

touch untuk membuat & update timestamp
touch README.md
touch report.txt
ls -la

Fungsi utama touch dalam workflow nyata: membuat placeholder file (misalnya menguji path yang bisa ditulis), atau memaksa proses yang dipicu oleh perubahan file (seperti systemd path units atau tooling seperti make) untuk melihat file sebagai "baru diubah".

Menyalin: cp

cp (copy) menyalin file atau direktori. Aturan emas yang paling sering dilupakan pemula: menyalin folder WAJIB memakai -r (recursive).

cp untuk file dan folder
cp report.txt backup/            # salin file ke direktori lain
cp report.txt backup/backup.txt  # salin dengan nama baru
cp -r project/ project-backup/   # salin folder lengkap isinya (-r!)
cp -i report.txt backup/         # -i: konfirmasi sebelum menimpa
  • cp -r menyalin seluruh isi direktori secara rekursif. Tanpa -r, menyalin folder akan gagal dengan error omitting directory.
  • cp -i (interactive) meminta konfirmasi sebelum menimpa file yang sudah ada — pelindung ampuh dari kehilangan data karena menimpa tidak sengaja.

Warning

cp menimpa file tujuan secara diam-diam tanpa konfirmasi. Bayangkan kalian menjalankan cp config.yaml config.yaml.bak tapi ternyata sudah ada config.yaml.bak yang penting — isinya langsung hilang. Biasakan memakai -i untuk perintah yang menulis ke file yang sudah ada, dan selalu pikirkan tujuan sebelum mengeksekusi.

Memindahkan & Mengganti Nama: mv

mv (move) melakukan dua hal: memindahkan file/folder ke lokasi lain, dan mengganti nama. Ia bekerja tanpa menyalin data — hanya memperbarui metadata posisi, sehingga sangat cepat bahkan untuk file besar:

mv untuk pindah dan rename
mv report.txt documents/           # pindahkan ke folder lain
mv report.txt documents/report.txt # gabungan pindah + rename
mv config.yaml config.old          # rename dalam direktori sama
mv project/ /home/arman/backup/    # pindahkan folder (tidak butuh -r)

Perhatikan: tidak seperti cp, mv untuk folder tidak membutuhkan -r — memindahkan folder adalah operasi yang aman karena tidak menyalin isi. Ini perbedaan kecil yang sering membingungkan.

Menghapus: rm dan rm -rf

rm (remove) menghapus file. Untuk direktori berisi, butuh -r (recursive); untuk menghapus tanpa bertanya, butuh -f (force). Kombinasi keduanya — rm -rf — adalah salah satu perintah paling berbahaya di Linux.

rm dan kombinasinya
rm report.txt            # hapus satu file
rm -i report.txt         # konfirmasi sebelum hapus
rm -r project/           # hapus folder beserta isinya
rm -f report.txt         # force: tanpa konfirmasi, abaikan error
rm -rf project/          # ⚠️ hapus folder + isi tanpa konfirmasi

Karena rm -rf menghapus tanpa konfirmasi dan tanpa keranjang sampah, satu typo path saja bisa menghabiskan data berharga. Perhatikan dua kasus klasik yang sering menjadi bencana:

Bencana yang harus dihindari
rm -rf ~ /etc     # ⚠️ baris 1: spasi berlebih — menghapus home & /etc!
rm -rf /var/l/og  # ⚠️ baris 2: typo path log

Caution

Tidak ada undo untuk rm di Linux. Tidak seperti Windows yang punya Recycle Bin, file yang dihapus dengan rm tidak bisa dipulihkan (kecuali dengan forensic recovery yang mahal dan tidak pasti). Aturan pengaman: (1) selalu tulis path lengkap dengan hati-hati, (2) cek dengan ls dulu sebelum menghapus, (3) gunakan -i saat ragu, dan (4) di direktori kritis seperti /etc, hindari rm untuk file yang belum di-backup. Saat kalian ragu: stop, cek, baru eksekusi.

Wildcards: *, ?, dan []

Sekarang bagian yang membuat Linux terasa powerful: wildcards (globbing). Wildcards adalah pola untuk mencocokkan banyak nama file sekaligus — shell yang memperluasnya sebelum perintah dijalankan.

WildcardArtiContohMencocokkan
*Nol atau lebih karakter apa pun*.logerror.log, access.log, a.log
?Tepat satu karakterreport?.txtreport1.txt, reportA.txt
[]Salah satu karakter dalam daftarfile[12].txtfile1.txt, file2.txt
Wildcard dalam praktik
ls *.log                 # semua file log
rm -i report?.txt        # hapus report + 1 karakter, dengan konfirmasi
ls report[12].txt        # report1.txt dan report2.txt saja
cp *.conf /etc-backup/   # salin semua file konfigurasi sekaligus

Mengapa wildcard begitu penting? Karena administrasi Linux hampir selalu berurusan dengan banyak file sekaligus — membersihkan log lama, memindahkan batch file, atau menyalin semua konfigurasi. Bayangkan harus mengetik rm seratus kali untuk seratus file; dengan rm *.tmp cukup satu baris.

Note

Wildcards diperluas oleh shell, bukan oleh program. Ketika kalian mengetik ls *.log, shell yang mencocokkan pola menjadi daftar file, lalu meneruskan daftar itu ke ls. Ini menjelaskan kenapa pola yang tidak cocok apa pun (misal ls *.xyz ketika tidak ada file .xyz) akan dikirim apa adanya sebagai nama file literal — sehingga ls melaporkan No such file or directory: *.xyz. Kebiasaan mengetik di terminal akan membuat hal ini terasa natural.

Praktik: Membangun Struktur Project Nyata

Sekarang mari rangkai semua perintah dalam satu latihan yang mencerminkan pekerjaan sehari-hari. Kita akan membangun struktur project untuk sebuah aplikasi web dengan bagian frontend dan backend:

Membangun struktur project
cd ~
mkdir -p myapp/src/components
mkdir -p myapp/src/utils
mkdir -p myapp/tests/fixtures
mkdir -p myapp/docs
touch myapp/README.md
touch myapp/src/components/Button.tsx
touch myapp/src/utils/format.ts
cp myapp/README.md myapp/docs/README.md
ls -R myapp
Hasil struktur project
myapp:
README.md  docs  src  tests
myapp/docs:
README.md
myapp/src:
components  utils
myapp/src/components:
Button.tsx
myapp/src/utils:
format.ts
myapp/tests:
fixtures

Perhatikan alur yang efisien: buat semua direktori sekaligus dengan mkdir -p (satu baris, bukan enam), lalu buat file dengan touch, salin file dengan cp, dan verifikasi dengan ls -R (recursive — menampilkan seluruh pohon). Latihan ini adalah pola dasar yang akan kalian ulang ratusan kali di dunia nyata.

Kesalahan Umum (Common Pitfalls)

KesalahanGejalaSolusi
rm -rf di path salahData penting hilang permanenTulis path hati-hati, ls dulu, gunakan -i
cp folder tanpa -rcp: -r not specified; omitting directorySelalu cp -r untuk direktori
Spasi dalam nama file tanpa escapeFile "terpecah" menjadi dua argumenGunakan \ (escape), tanda kutip "my file.txt", atau Tab autocomplete
cd .. terlalu banyakBerada di direktori yang tidak diinginkanGunakan pwd dan cd - untuk kembali
rmdir pada direktori berisirmdir: failed to remove 'x': Directory not emptyPakai rm -r (atau cek isinya dulu dengan ls)
Menghapus file yang masih dipakaiProses error saat butuh filelsof <file> untuk cek proses yang memakainya

Soal spasi dalam nama file: jangan takut, tapi selalu tangani dengan benar. Cara paling aman adalah mengetik dengan Tab autocomplete — shell akan meng-escape spasi secara otomatis. Cara manual: cd "My Documents" atau cd My\ Documents.

Penutup

Pada episode 3 ini, kalian telah menguasai perintah navigasi dan manajemen file: pwd dan ls untuk orientasi, cd untuk berpindah, mkdir/rmdir untuk mengelola direktori, touch untuk membuat file, cp untuk menyalin, mv untuk memindahkan/rename, rm untuk menghapus, serta wildcards *, ?, [] untuk memanipulasi banyak file sekaligus — semuanya dirangkai dalam latihan membangun struktur project nyata.

Inti yang harus dibawa pulang:

  • Orientasi selalu dimulai dari pwd dan ls — ketahui di mana kalian dan apa saja yang ada.
  • cp -r untuk folder, mv tanpa -r — perbedaan yang menyelamatkan dari error dan kebingungan.
  • rm -rf sangat berbahaya — tidak ada undo di Linux; selalu cek path sebelum eksekusi.
  • Wildcards mengubah pekerjaan "banyak file" menjadi satu perintah.
  • Spasi dalam nama file ditangani dengan escape \ atau tanda kutip.

Sekarang kalian bisa "berjalan" di dalam filesystem Linux. Di episode 4 selanjutnya, kita akan membahas keterampilan yang tidak kalah penting: Membaca, Melihat & Mengedit Text File — menguasai cat, less, head, tail -f untuk membaca file dan memantau log secara real-time, serta editor nano dan vim untuk mengedit file konfigurasi. Pastikan tetap semangat, karena semakin banyak alat yang kalian kuasai, semakin "liar" produktivitas kalian di terminal!

Belajar Linux - Navigasi File System & Manajemen File/Folder | Belajar Linux