如何跨符號連結/外部複製檔案? (目的地)

如何跨符號連結/外部複製檔案? (目的地)

假設我有一個這樣的檔案系統:

/home/me/dir1/dir2/dir3/dir4/dir5/dir6/file1

然後在 中/home/me/dir1,我建立一個符號連結:

$ cd /home/me/dir1
$ ln -s /home/me/dir1/dir2/dir3/dir4/dir5/dir6 linkdir6

我正在嘗試將file1 複製到我的主目錄(這是我的簡化示例,它比這更複雜- “/home/me/”實際上是一個更複雜的目錄結構,因此“~/”不是解決方案)。

$ cd linkdir6
$ cp file1 ../
$ cd ..
$ ls
dir2 linkdir6

我沒有看到 file1。尋找它,我發現它在/home/me/dir1/dir2/dir3/dir4/dir5/file1

它似乎cp沒有意識到它位於符號目錄中。

我如何cp 在......之外一個符號資料夾?

或者,我如何cp理解../應該取消引用(其中目的地在手冊頁中被引用)?

我錯過了什麼嗎?這可能嗎?

謝謝!

(最後一點 - 實際用例是在一個深層目錄結構中,在一個符號鏈接目錄內,嘗試複製文件 ../another-symlink-directory/ 而不輸入完整路徑 - 這是符號鏈接的要點之一我很關心)

答案1

您實際上已經點擊了cd linkdir6.您確實位於該目錄中,因此 ../ 是該目錄的上一層,位於 dir5 中。

使用 cp 最安全的方法是位於目標目錄中。然後使用連結獲取原始檔案。

cd ~/me/dir1  #.. Target
cp linkdir6/file1 .

就我個人而言,我更喜歡 cp 中的 -t(目標)選項。

cp -t ~/me/dir1 dir1/linkdir6/file1

答案2

$ cp file1 "$(cd .. && pwd -P)"

這個答案

相關內容