Navigasi Direktori

Bergerak di sistem berkas dengan pwd, ls, dan cd, serta jalur absolut dan relatif.

Daftar isi

Topik ini membahas cara bergerak di sistem berkas dari terminal menggunakan pwd, ls, dan cd, serta cara menyusun jalur absolut dan jalur relatif. Latihan memakai pohon direktori contoh di /tmp/kerja-navigasi. Setelah membacanya, posisi saat ini dapat diperiksa, isi direktori dapat dibaca, dan pindah direktori tidak lagi dilakukan dengan menebak.

Menampilkan posisi dengan pwd#

Bash selalu menyimpan satu direktori kerja (current working directory), yaitu direktori yang menjadi titik berangkat perintah yang dijalankan. Perintah pwd (print working directory) mencetak direktori tersebut. Karena jalur relatif dihitung dari titik ini, memeriksa posisi sebelum menjalankan perintah yang berdampak besar, misalnya rm, merupakan kebiasaan kecil yang mencegah kesalahan besar.

Blok berikut menyiapkan pohon latihan di dalam /tmp.

bash
# menyiapkan pohon direktori latihan
mkdir -p /tmp/kerja-navigasi/proyek-web/laporan
mkdir -p /tmp/kerja-navigasi/proyek-web/statik
touch /tmp/kerja-navigasi/proyek-web/index.html
touch /tmp/kerja-navigasi/proyek-web/laporan/q1.txt
touch /tmp/kerja-navigasi/proyek-web/laporan/q2.txt

Setelah pohon latihan siap, masuk ke folder proyek lalu periksa posisinya.

bash
# masuk ke folder proyek lalu periksa posisi
cd /tmp/kerja-navigasi/proyek-web
pwd
text Keluaran
/tmp/kerja-navigasi/proyek-web

Jalur /tmp/kerja-navigasi/proyek-web sekarang menjadi direktori kerja sesi ini. Folder /tmp dipilih karena dirancang untuk berkas sementara, sehingga pohon latihan tidak meninggalkan jejak permanen di home pengguna.

Membaca isi dengan ls#

Tanpa argumen, ls mencantumkan isi direktori kerja. Dengan argumen, ls mencantumkan isi direktori yang disebut, misalnya ls /tmp. Blok keluaran di halaman ini direkam tanpa terminal interaktif, sehingga entri tampil satu per baris, sedangkan terminal interaktif biasanya menata entri dalam kolom. Isinya sama saja.

bash
# isi folder proyek
ls
text Keluaran
index.html
laporan
statik

Opsi -a (all) menambahkan entri tersembunyi, yaitu entri yang namanya diawali titik. Dua entri selalu muncul pada setiap direktori, yaitu . yang berarti direktori itu sendiri dan .. yang berarti induknya.

bash
# -a menampilkan entri tersembunyi
ls -a
text Keluaran
.
..
index.html
laporan
statik

Opsi -l menampilkan format panjang, yaitu satu entri per baris lengkap dengan izin, pemilik, ukuran, dan waktu perubahan. Format panjang berguna ketika pemilik atau ukuran berkas perlu diperiksa, sedangkan untuk sekadar berpindah tempat, bentuk singkat sudah cukup.

Karena waktu berkas ikut tampil pada format panjang, waktu berkas-berkas contoh diatur terlebih dahulu dengan opsi -d milik touch agar keluaran di bawah dapat direkam secara tetap.

bash
# mengatur waktu berkas contoh lalu menampilkan format panjang
touch -d "2026-11-02 08:00" /tmp/kerja-navigasi/proyek-web/index.html
touch -d "2026-11-02 09:00" /tmp/kerja-navigasi/proyek-web/laporan
touch -d "2026-11-02 10:00" /tmp/kerja-navigasi/proyek-web/statik
ls -l /tmp/kerja-navigasi/proyek-web
text Keluaran
total 8
-rw-rw-r-- 1 z z    0 Nov  2 08:00 index.html
drwxrwxr-x 2 z z 4096 Nov  2 09:00 laporan
drwxrwxr-x 2 z z 4096 Nov  2 10:00 statik

Setiap baris memuat izin, jumlah tautan, pemilik, grup, ukuran dalam byte, waktu perubahan, dan nama. Huruf d pada awal baris laporan dan statik menandakan direktori, sedangkan tanda minus menandakan berkas biasa. Angka 4096 pada direktori adalah ukuran ruang yang dipakai untuk menyimpan daftar entrinya, bukan jumlah isi di dalamnya. Karena itu, ukuran direktori tidak berguna untuk menghitung konten. Kolom waktu menampilkan tanggal dan jam, atau tahun apabila berkasnya berumur lebih dari enam bulan.

Berpindah dengan cd#

Perintah cd (change directory) menerima satu jalur. Jalur absolut berawalan garis miring dan selalu dihitung dari akar sistem berkas, sedangkan jalur relatif dihitung dari direktori kerja saat ini. Blok berikut memakai jalur relatif untuk masuk ke laporan.

bash
# masuk ke subfolder dengan jalur relatif
cd laporan
pwd
ls
text Keluaran
/tmp/kerja-navigasi/proyek-web/laporan
q1.txt
q2.txt

Tanda .. berarti induk direktori. Blok berikut naik satu tingkat kembali ke proyek-web.

bash
# naik satu tingkat dengan ..
cd ..
pwd
text Keluaran
/tmp/kerja-navigasi/proyek-web

Jalur absolut mengarah ke tempat yang sama dari posisi mana pun. Blok berikut menyusuri jalur absolut sampai akar, lalu menuju laporan dengan jalur absolut yang lengkap.

bash
# jalur absolut selalu berawalan garis miring
cd /
pwd
cd /tmp/kerja-navigasi/proyek-web
cd laporan
pwd
text Keluaran
/
/tmp/kerja-navigasi/proyek-web/laporan

Pada pohon latihan, kedua gaya menuju direktori yang sama. Jalur absolut lebih panjang tetapi tidak bergantung pada posisi, sehingga cocok untuk skrip, sedangkan jalur relatif lebih pendek dan mengikuti posisi saat ini. Diagram berikut menunjukkan kedua jalur pada pohon yang sama.

proyek-webindex.htmllaporanstatikq1.txtq2.txtabsolut: /tmp/kerja-navigasi/proyek-web/laporanrelatif dari proyek-web: laporan
Dua cara menuju folder laporan: jalur absolut dari akar dan jalur relatif dari proyek-web

Perintah cd tanpa argumen kembali ke folder home, sama seperti cd ~. Perintah cd - berpindah ke direktori sebelumnya sekaligus mencetak namanya, praktis untuk bolak-balik antara dua direktori.

bash
# cd tanpa argumen kembali ke home
cd
pwd
text Keluaran
/home/kal

Folder home pada keluaran di atas adalah /home/kal karena sesi latihan berjalan sebagai pengguna z. Pada mesin lain, nilainya menyesuaikan nama pengguna yang sedang login.

Kesalahan umum#

cd menolak jalur yang tidak ada. Bash menampilkan pesan No such file or directory dan direktori kerja tidak berubah. Penyebabnya hampir selalu salah ejaan atau posisi yang keliru, misalnya mengetik cd laporan padahal sedang berada di luar proyek-web. Lengkapi nama dengan Tab dan periksa isi direktori dengan ls sebelum mencoba lagi.

Mengira . dan .. bermakna sama. . menunjuk direktori itu sendiri, sehingga cd . tidak memindahkan apa pun, sedangkan .. naik ke induknya. Kesalahan ini tampak seperti perintah yang “tidak bekerja”, padahal memang tidak ada yang perlu berpindah.

Menyalin jalur dari mesin lain tanpa penyesuaian. Jalur absolut milik mesin lain mungkin tidak ada di mesin latihan, misalnya /home/ali/proyek. Susun jalur secara bertahap dan periksa setiap tingkat dengan ls agar bagian yang tidak ada langsung terlihat.

Ringkasan#

  • pwd mencetak direktori kerja, yaitu titik berangkat semua jalur relatif.
  • ls mencantumkan isi direktori, opsi -a menampilkan entri tersembunyi berawalan titik, dan opsi -l menampilkan detail per baris.
  • cd berpindah direktori, tanpa argumen menuju home, dengan .. naik satu tingkat, dan dengan cd - kembali ke direktori sebelumnya.
  • Jalur absolut berawalan garis miring dan dihitung dari akar, sedangkan jalur relatif dihitung dari direktori kerja saat ini.

Referensi#