Каталог (як і будь-який файл) не визначається його іменем. Подумайте про те , як ім'я самого каталогу адреса . Коли ви переміщуєте каталог, це все той же каталог, як і якщо ви переїжджаєте в інший будинок, ви все одно та сама людина. Якщо ви видалите каталог і створите новий з тим же ім’ям, це новий каталог, як і хтось, хто переселяється в будинок, де ви жили раніше, чи не ви.
Кожен процес має робочий каталог . cd
Команди в оболонці змінює поточний робочий каталог оболонки. pwd
Команда друкує the¹ шлях до поточного робочого каталогу.
Коли ви видалили каталог A, це було, щоб видалити запис для A у його батьківському каталозі. Сам каталог A залишився у файловій системі, але у відокремленому стані, без імені. Він ще не був видалений, оскільки він використовувався процесом, а саме першою оболонкою. Коли ви змінили каталог у першій оболонці, каталог було остаточно видалено. Те саме відбувається, коли файл видаляється, поки процес все ще відкритий: запис каталогу файлу видаляється негайно, а сам файл видаляється, коли він перестає використовувати.
Аналогічно спостерігайте за тим, що відбувається під час переміщення каталогів.
mkdir one two
touch one/1 two/2
cd one
ls
В іншій оболонці:
mv one tmp
mv two one
mv tmp two
У першій оболонці:
ls
Файл 1
знаходиться в каталозі, який спочатку називався one
і тепер називається two
. Файл 2
знаходиться в каталозі, який спочатку називався two
і тепер називається one
.
¹ Точніше, шлях, який не може бути унікальним , якщо символічні посилання або інші тонкощі беруть участь.
cd $PWD
.