Symlink

如何獲取軟符號連結的原始文件的完整路徑?

  • January 12, 2022

我想將scp文件發送到伺服器。該文件是一個符號連結,實際上我想要做的是複制源文件。

我不想手動跟踪源文件的路徑,因為它可以被替換。

如何獲取源文件的絕對路徑以便我可以scp使用它?

試試這條線:

readlink -f `which command`

如果command在你的$PATH變數中,否則你需要指定你知道的路徑。

在 Linux 下,readlink讀取符號連結的內容,然後readlink -f按照符號連結到符號連結到符號連結等,直到找到不是符號連結的內容。

但是,這對於 scp 不是必需的: scp 始終遵循符號連結(它始終複製文件內容,忽略元數據,除非-p在可能的情況下保留文件時間和模式)。

如果您對元數據 scp 可以保存和不能保存的內容感到失望,我建議您使用 rsync。如果沒有選項,rsync 會忽略元數據複製文件內容。常用選項-a保留所有普通元數據(時間、符號連結、權限和所有權),並且有一些選項可以保留 ACL 和硬連結等外來元數據。

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