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
pwdIni 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
pwdpwd 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
pwdPosisi 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
pwdNilai 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
pwdKarena 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 ~
pwdDi 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)
pwdOutput 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.
Path logis dan fisik pada symlink
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 -PJangan 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"
fiNot 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 directoryJangan 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.cdataucd ~: ke home; kutip variabel dan nama folder berspasi.- Periksa
pwddan 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.