Ssh

ssh tar 複製 - 失去文件

  • October 31, 2012

使用以下命令將目錄“home”(從遠端機器)複製到本地機器:

ssh root@remote.machine 'tar -cz -C /home/*' | tar -zxv

事務後的文件數不匹配。有些文件從未被複製。

有人遇到過類似的問題嗎?

tar用於復製文件的一個問題是舊的 POSIX tar 格式 ( ustar)具有 100 字節的有限長度來儲存硬連結。它可以處理更長的名稱,因此只要您的文件有一個連結,一切都很好。但是當 tar 第二次遇到一個 inode 時,它會產生一個硬連結記錄,名字只有 100 個字節。如果名稱太長,則第二個連結不會儲存在存檔中。

我確實記得 tar 實現丟棄了這些帶有診斷消息的連結,但仍然以狀態 0 退出。也許你的 tar 更糟,默默地丟棄它們。

新的POSIX tar 格式 ( pax)沒有此限制。嘗試使用pax代替tar,或tar使用正確的選項。目前版本的 GNU tar 預設為 pax 格式,如果被告知生成ustar名稱不合適的存檔,則確實會正確抱怨。

引用自:https://serverfault.com/questions/282628