Perintah Linux untuk berpindah direktori adalah cd (change directory). Gunakan pwd untuk mengetahui direktori kerja saat ini, kemudian cd diikuti path tujuan:

pwd
cd Documents
pwd

Ini contoh penggunaan, bukan jaminan folder Documents ada di komputer Anda. Nama folder peka huruf besar-kecil pada filesystem Linux yang umum. Latihan terkontrol di bawah membuat foldernya sendiri.

Prasyarat: shell dan direktori kerja

Contoh menggunakan Bash. cd adalah builtin shell karena harus mengubah direktori kerja shell yang sedang Anda gunakan. Proses anak tidak dapat mengubah direktori kerja proses induknya. Cek builtin dengan type cd; tidak perlu menginstal paket bernama cd.

Perintah Fungsi Contoh
cd nama-folder Pindah ke subfolder relatif cd src
cd /path/absolut Pindah ke path absolut cd /var/log
cd .. Naik satu level ke direktori induk cd ../.. naik dua level
cd - Kembali ke direktori sebelumnya bolak-balik dua folder
cd atau cd ~ Pindah ke home direktori cd ~/Projects
cd -- Akhiri parsing opsi (folder berawalan -) cd -- -folder-aneh

Perintah navigasi tidak memindahkan atau menghapus file. Namun, direktori kerja menentukan target perintah relatif sesudahnya. Jika cd gagal dan Anda tetap menjalankan perintah berikutnya, operasi bisa terjadi di folder yang salah. Dalam skrip, gunakan cd "$tujuan" && perintah atau tangani kegagalannya secara eksplisit.

Latihan dalam sandbox

Jalankan blok-blok latihan berikut secara berurutan dalam satu sesi Bash. mktemp -d membuat direktori baru; tidak ada folder proyek yang ditimpa. Folder latihan dibiarkan tersedia untuk diperiksa sesudahnya.

lab=$(mktemp -d)
mkdir -p "$lab/Projects/web-app/src" "$lab/Folder Kerja"
printf 'ini file, bukan direktori\n' > "$lab/catatan.txt"
cd "$lab" || exit 1
pwd

pwd mencetak path sementara yang berbeda pada setiap mesin, misalnya /tmp/tmp.…. Path /tmp di Git Bash dipetakan ke penyimpanan Windows; jangan menyamakannya dengan home Linux.

Path relatif dan direktori induk

cd Projects/web-app || exit 1
pwd
cd .. || exit 1
pwd

Posisi berubah dari $lab/Projects/web-app ke $lab/Projects. cd .. menuju direktori induk, bukan direktori kerja sebelumnya. cd ../.. naik dua tingkat, sedangkan cd . tetap pada direktori yang sama.

Path absolut dan folder berspasi

cd "$lab/Folder Kerja" || exit 1
pwd

Nilai lab dari mktemp adalah path absolut pada lingkungan uji ini, sehingga tidak bergantung pada posisi saat ini. Selalu kutip variabel path. Tanpa kutip, Folder Kerja terpecah menjadi dua argumen. Untuk folder bernama -data, gunakan cd ./-data agar tidak dibaca sebagai opsi.

Kembali ke direktori kerja sebelumnya

cd - || exit 1
pwd

Karena langkah sebelumnya berasal dari $lab/Projects, cd - kembali ke sana. Perintah ini mencetak path tujuan; pwd mencetaknya lagi. Bash menyimpan lokasi sebelumnya di OLDPWD. Jika OLDPWD belum disetel, cd - gagal dengan pesan OLDPWD not set.

Kembali ke home

cd
pwd
cd ~
pwd

Di Bash, cd tanpa argumen menggunakan $HOME. cd ~ juga menuju home pengguna melalui ekspansi tilde. Home tidak harus /home/username; lokasinya bergantung pada sistem. Jika HOME tidak disetel, cd tanpa argumen gagal.

Untuk subdirektori home, gunakan cd ~/Documents atau cd "$HOME/Documents". Jangan gunakan cd "~/Documents": tilde di dalam kutip tidak diperluas. Folder tujuan tetap harus ada dan dapat diakses. Dalam uji otomatis, HOME diganti hanya di proses sandbox agar tidak menyentuh home pengguna.

Mengapa cd dalam skrip tidak mengubah terminal induk?

Bentuk subshell ini hanya mengubah direktori di dalam tanda kurung:

cd "$lab" || exit 1
(cd Projects && pwd)
pwd

Output pertama berakhir dengan /Projects; output kedua kembali ke path lab. Hal serupa terjadi pada skrip yang dijalankan sebagai proses anak dengan bash skrip.sh. Menjalankan source skrip.sh berbeda: isinya bekerja di shell saat ini. Hanya source skrip yang Anda percaya, karena efeknya tidak terbatas pada cd.

Bash memakai perilaku logis (-L) secara default: PWD dapat mempertahankan jalur symlink yang dipakai untuk masuk. cd -P tujuan dan pwd -P memakai jalur fisik yang menyelesaikan symlink. Akibatnya, cd .. dari jalur logis bisa berbeda dari perpindahan fisik melalui symlink.

Contoh berikut hanya ilustrasi untuk sistem yang sudah memiliki symlink tersebut, bukan bagian fixture:

cd -P ./tautan-ke-proyek
pwd -P

Jangan menganggap semua shell, filesystem, dan symlink Windows berperilaku identik dengan Linux.

Menangani kegagalan tanpa mengubah izin sembarangan

No such file or directory

Path tidak ada, salah kapitalisasi, atau basis path relatif keliru. Periksa pwd, nama folder, dan gunakan penyelesaian nama dengan Tab. Ketika perpindahan gagal, direktori kerja tetap seperti sebelumnya.

if cd "$lab/tidak-ada"; then
  printf 'berpindah\n'
else
  printf 'gagal; posisi tetap: %s\n' "$PWD"
fi

Not a directory

Path menunjuk file biasa, bukan folder. Dalam fixture, perintah ini sengaja gagal:

cd "$lab/catatan.txt"

Contoh pesan Bash (prefiks/nomor baris bisa berbeda):

bash: cd: /tmp/tmp.…/catatan.txt: Not a directory

Jangan lanjutkan operasi pada file setelah kegagalan cd tanpa memeriksa statusnya.

Permission denied

Di Linux, pengguna memerlukan izin search/execute (x) pada direktori tujuan dan setiap komponen direktori yang dilalui; ACL atau kebijakan keamanan juga dapat membatasi akses. Periksa dengan ls -ld path dan minta akses kepada pemilik bila perlu. Jangan memakai chmod 777 atau mengubah izin direktori sistem sebagai solusi umum.

sudo cd /root bukan cara mengubah direktori shell Anda: cd adalah builtin, dan proses yang dijalankan sudo tidak bisa mengubah direktori proses induk. Untuk tugas administratif yang sah, minta administrator menjalankan operasi spesifik atau gunakan prosedur akses resmi. Anda tidak perlu shell root untuk latihan navigasi ini.

Ringkasan dan rujukan

  • cd folder: masuk ke path relatif; cd /path/absolut: masuk dari root filesystem.
  • cd ..: ke induk; cd -: ke direktori kerja sebelumnya.
  • cd atau cd ~: ke home; kutip variabel dan nama folder berspasi.
  • Periksa pwd dan tangani kegagalan sebelum menjalankan operasi berikutnya.

Rujukan primer: Bash manual: Bourne Shell Builtins, cd dan pwd dan Tilde Expansion. Bantuan lokal tersedia lewat help cd dan help pwd.

Catatan verifikasi lokal: latihan path relatif/absolut, induk, cd -, home sandbox, folder berspasi, subshell, path hilang, dan file non-direktori diuji pada Bash 5.2.37 dari Git for Windows. Izin POSIX Linux dan perilaku symlink Linux belum diuji langsung; penjelasannya merujuk manual, bukan hasil uji mesin Linux.