Ssh
ssh tar 複製 - 失去文件
使用以下命令將目錄“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
名稱不合適的存檔,則確實會正確抱怨。