不同的「刪除前導斜線」警告的含義是什麼?

不同的「刪除前導斜線」警告的含義是什麼?

我正在將 gnutar與指定的幾個實例一起使用--exclude

我得到了

Removing leading / from member names

Removing leading / from hard link targets

警告。他們之間有什麼區別?

答案1

tarball 中的任何條目都不能以「/」開頭,即具有絕對路徑。這是一項安全功能,因此,如果您解壓縮 tarball,您可以確保所有檔案都將駐留在目標目錄和子目錄中,而不是分散在整個系統中(並可能覆蓋關鍵檔案)。

您看到的警告是由於tar從任何絕對路徑中剝離前導“/”而產生的,無論是普通文件(“成員名稱”)還是硬連結(“硬連結目標”)。

例如,這個指令...

/home/user $ tar czf tarball.tgz /home/user/data

……會導致這些警告,因為“/home/...”被轉換為“home/...”。解壓縮 tarball...

/home/user $ tar xzf tarball.tgz

....將導致所有文件被解壓縮到/home/user/home/user/data.如果tar沒有刪除前導斜杠,/home/user/data則 中的檔案將被覆寫。

相關內容