..
(二重点)の本質を理解しようとしています。どのようにアプローチするかに応じて、他のターゲットを指しているようです。
例:-
/outer/
middle/
inner/
inner --> ./middle/inner/
今の/outer/middle/inner/..
結果は、/outer/middle/
しかしシンボリックリンクを介してアクセス/outer/inner/..
すると/outer/
。これには2つの違いがあるようです..
。
正確には何ですか..
?シンボリックリンク?ハードリンク?それとも、ディレクトリにアクセスしたときにパスに基づいて動的に作成されますか?または、シンボリックリンクの私の理解が間違っている可能性があります。
編集する:
その他の関連観察
/outer/
middle/
file
inner/
f --> ./../file
inner --> ./middle/inner/
これで、ファイルを介してファイルにアクセスしようとすると/outer/inner/f
機能します。ただし、/outer/inner/../file
ファイルを指していないため、そうしないでください。ファイルはにあります/outer/middle/inner/..
。これは上記の動作と矛盾するようです! ?
ベストアンサー1
..
はハードリンクディレクトリエントリの一部として作成された親ディレクトリに移動します。
各ディレクトリで質問を発行すると、ls -ail
すべて同じinode
(最初のフィールド)とハードリンク数(3番目のフィールド)を持つ次のエントリが表示されます。
..
ls -ail
で実行されたときinner
.
ls -ail
で実行されたときmiddle
middle
ls -ail
で実行されたときouter
/outer/middle/inner/.. は /outer/middle/ にリンクされますが、シンボリックリンクを介してアクセスすると /outer/inner/.. は /outer/ にリンクされます。ここには2つの異なるものがあるようです...
..
に項目がありますinner
。現在の作業ディレクトリが次の場合、outer
同じ結果(ディレクトリリストmiddle
)を表示する必要があります。
ls -al inner/..
ls -al middle/inner/..
..
シンボリックリンクを介した「アクセス」が異なる動作を提供する必要がある唯一のケースは、シンボリックリンクをcd
使用することです。inner
ロジック作業ディレクトリ(pwd -L
)はあなたのディレクトリとは異なります。物理作品リスト( pwd -P
)。この場合、次のcd ..
位置に戻ります。outer
いいえ他の..
アイテムがありますが、シェルロジック..
作業ディレクトリを表示し、参照の代わりに1レベル上にポップアップしますinner
。
bash
これは組み込みコマンドの一部として提供cd
される便利です。実際のアイテムに変更を依頼して上書き..
できます。
cd -P ..
ここで、-P
ディレクティブcd
(pwd
上記と同じ)は実際のパスを使用します。