Direktori (seperti file apa pun) tidak ditentukan oleh namanya. Pikirkan nama tersebut sebagai alamat direktori . Ketika Anda memindahkan direktori, itu masih direktori yang sama, seperti jika Anda pindah ke rumah yang berbeda, Anda masih orang yang sama. Jika Anda menghapus direktori dan membuat yang baru dengan nama yang sama, itu adalah direktori baru, sama seperti seseorang yang pindah ke rumah tempat Anda dulu tinggal bukan.
Setiap proses memiliki direktori yang berfungsi . The cd
perintah di shell mengubah direktori kerja shell saat ini. The pwd
perintah mencetak the¹ path ke direktori kerja saat ini.
Ketika Anda menghapus direktori A, yang dilakukan adalah menghapus entri untuk A di direktori induknya. Direktori A sendiri tetap berada di sistem file, tetapi dalam keadaan terpisah, tanpa nama. Itu belum dihapus karena sedang digunakan oleh suatu proses, yaitu shell pertama. Ketika Anda mengubah direktori di shell pertama, direktori itu akhirnya dihapus. Hal yang sama terjadi ketika file dihapus saat proses masih terbuka: entri direktori file segera dihapus, dan file itu sendiri dihapus ketika berhenti digunakan.
Demikian pula, amati apa yang terjadi ketika Anda memindahkan direktori.
mkdir one two
touch one/1 two/2
cd one
ls
Di shell lain:
mv one tmp
mv two one
mv tmp two
Di shell pertama:
ls
File 1
ada di direktori yang awalnya dipanggil one
dan sekarang dipanggil two
. File 2
ada di direktori yang awalnya dipanggil two
dan sekarang dipanggil one
.
¹ Lebih tepatnya, sebuah jalan, yang mungkin tidak unik jika link simbolik atau kehalusan lain yang terlibat.
cd $PWD
.