ポイント(..)は正確に何ですか?シンボリックリンクとは異なる動作をするのはなぜですか?

ポイント(..)は正確に何ですか?シンボリックリンクとは異なる動作をするのはなぜですか?

..(二重点)の本質を理解しようとしています。どのようにアプローチするかに応じて、他のターゲットを指しているようです。

例:-

    /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
  • middlels -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ディレクティブcdpwd上記と同じ)は実際のパスを使用します。

おすすめ記事