Cd-Command

當我在重命名後嘗試更改到父目錄時會發生什麼?

  • November 18, 2017

我有幾個子目錄很深,我輸入cd ..並收到此錯誤:

cd: ..: No such file or directory

我很困惑——當然有一個父目錄,我在裡面!一點點探勘表明我的同事從我下面重命名了一個祖父母目錄,當我試圖移動到我的父目錄時,我得到了上述錯誤。我試圖像這樣重現這個:

server|/n01/data/adf/temp/TEMPTEST/SUB1/SUB2> pwd
/n01/data/adf/temp/TEMPTEST/SUB1/SUB2
server|/n01/data/adf/temp/TEMPTEST/SUB1/SUB2> mv /n01/data/adf/temp/TEMPTEST /n01/data/adf/temp/NEWTEMPTEST
server|/n01/data/adf/temp/TEMPTEST/SUB1/SUB2> pwd
/n01/data/adf/temp/NEWTEMPTEST/SUB1/SUB2

現在我迷路了,漂泊,改變到父目錄會給我和以前一樣的錯誤。

server|/n01/data/adf/temp/TEMPTEST/SUB1/SUB2> cd ..
server|/n01/data/adf/temp/NEWTEMPTEST/SUB1>

沒有錯誤。我成功更改了目錄。發生了什麼?為什麼這個錯誤不像第一次那樣?

重命名父目錄不會導致這樣的錯誤。但是,例如,刪除將:

# mkdir -p some/deep/path
# cd some/deep/path
# rm -r some/deep/path
# cd ..
error: No such file or directory

Linux 本身沒有“重命名”命令。你可以“移動”東西。在同一個文件系統中移動時,這相當於重命名。但是,在文件系統之間移動時,這實際上是一個複制/刪除操作,這可能會導致與上面所示類似的情況,例如:

# mkdir -p /fs1/a/b
# cd /fs1/a/b
# mv /fs1/a /fs2/a
# cd ..
error: No such file or directory

when/fs1/fs2是不同的文件系統(在這種情況下是掛載點)。

引用自:https://unix.stackexchange.com/questions/405370