'..'は正確に何を意味しますか?

'..'は正確に何を意味しますか?
  1. セントースバージョン:8.5.2111
  2. 現在のパスワードは次のとおりです。/tmp/new/
  3. /home/chenchen/Videos/との間にソフトリンクを作成する必要があります。/tmp/softlink
  4. これは私のコマンドです:ln -s /home/chenchen/Videos/ ../softlink
  5. 結果:このソフトリンクは次に/home/chenchen/softlink表示されると思います。/tmp/softlink
  6. 明らかに ' ..' は/home/chenchenstep.4 コマンドで for を表します。
  7. ただし、以下を使用すると、double-tabこの時点でいくつかのファイルが表示さln -s /home/chenchen/Videos/ ../ れます。/tmp/../tmp
  8. ..Q:ほぼ同じコマンドがstep4とstep7で異なる意味を持つのはなぜですか?

答え1

これが異なる意味を持つのではなく、シェルがそれを誤って..解釈しただけです。..

ここで問題は、シェルがユーザーが存在するディレクトリを知っていると思いますが、シェルのpwdのパスの1つがシンボリックリンクであり、そのシンボリックリンクが通過する..場合、シェルはパスコンポーネントを削除して新しいディレクトリを作成しますが、これは実際には正確ではありませんそうではなく、実際の巡回では..異なる結果が表示されます。

組み込みシェルの出力と外部.shellの出力を比較すると、pwdそれをより直接的に確認できます/bin/pwd。 Bashでは、シェル組み込み機能を使用してpwd -P実際のパスを取得することもできます。

関連情報