名前が変更された親ディレクトリを変更しようとするとどうなりますか?

名前が変更された親ディレクトリを変更しようとするとどうなりますか?

非常に深いサブディレクトリが複数あり、入力しましたが、次の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>

エラーはありません。ディレクトリを正常に変更しました。どうしたの?このエラーが最初のように見えないのはなぜですか?

ベストアンサー1

親ディレクトリの名前を変更すると、これらのエラーは発生しません。ただし、削除すると、次のような結果になります。

# 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

/fs1とファイルシステムが異なる場合/fs2(この場合はマウントポイント)

おすすめ記事