Symlink

‘..’ 真正代表什麼?

  • February 27, 2022
  1. centos版本: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/chenchen在 step.4 命令中
  7. 但是,當我double-tab此時使用 : 時,它向我顯示了 此刻ln -s /home/chenchen/Videos/ ../ 下的一些文件 ,代表/tmp/``..``/tmp
  8. 問題:在step4和step7上,為什麼..幾乎相同的命令有不同的含義?

這不是..有不同的含義,而是shell解釋..不正確。

這裡的問題是 shell 認為它知道你在哪個目錄,但是如果 shell 的 pwd 中的路徑之一是符號連結,並..遍歷該符號連結,shell 將刪除路徑組件以生成新目錄,但這實際上可能不正確,實際上遍歷..會給出不同的結果。

如果您將內置 shell 的輸出pwd與 external進行比較,您可以更直接地看到這一點/bin/pwd。在 bash 中,您還可以使用內置pwd -P的 shell 來獲取真實路徑。

引用自:https://unix.stackexchange.com/questions/692284