Un directorio (como cualquier archivo) no está definido por su nombre. Pensar en el nombre como el del directorio de direcciones . Cuando mueve el directorio, sigue siendo el mismo directorio, al igual que si se muda a una casa diferente, sigue siendo la misma persona. Si elimina un directorio y crea uno nuevo con el mismo nombre, es un directorio nuevo, al igual que alguien que se muda a la casa donde solía vivir, ¿no es usted?
Cada proceso tiene un directorio de trabajo . El cd
comando en el shell cambia el directorio de trabajo actual del shell. El pwd
comando imprime la ruta to al directorio de trabajo actual.
Cuando eliminó el directorio A, lo que hizo fue eliminar la entrada de A en su directorio principal. El directorio A permaneció en el sistema de archivos, pero en un estado separado, sin nombre. Todavía no se eliminó porque estaba en uso por un proceso, es decir, el primer shell. Cuando cambió el directorio en el primer shell, el directorio finalmente se eliminó. Lo mismo sucede cuando se elimina un archivo mientras un proceso todavía lo tiene abierto: la entrada del directorio del archivo se elimina inmediatamente y el archivo en sí se elimina cuando deja de estar en uso.
Del mismo modo, observe lo que sucede cuando mueve los directorios.
mkdir one two
touch one/1 two/2
cd one
ls
En otro caparazón:
mv one tmp
mv two one
mv tmp two
En el primer caparazón:
ls
El archivo 1
está en el directorio que originalmente se llamó one
y ahora se llama two
. El archivo 2
está en el directorio que originalmente se llamó two
y ahora se llama one
.
¹ Más precisamente, una ruta, que puede no ser única si están involucrados enlaces simbólicos u otras sutilezas.
cd $PWD
.