Cd-Command
當我在重命名後嘗試更改到父目錄時會發生什麼?
我有幾個子目錄很深,我輸入
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
是不同的文件系統(在這種情況下是掛載點)。