Permissions

僅將權限和所有權從一個 tar 文件複製到另一個

  • October 30, 2019

我有兩個 tar 文件,它們基本上是我在 android 上的 /data 文件夾的備份。問題是最新備份中文件的權限和所有權被搞砸了。然而,舊 tar 中的權限是完美的。

我想要一種從 old.tar 讀取權限並將更改複製到 latest.tar 的方法。

我嘗試使用 -p 和 –same-owner 標誌將文件提取到我自己的系統,但所有權更改為,root而不是system因為我的電腦沒有名為 system 的使用者或組,但我的 android 手機有。我想我會提取文件,並編寫一個腳本,該腳本使用 stat 和 grep 來讀取權限和所有權,並在 latest.tar 中設置文件的權限和所有權。但它似乎不是那樣工作的。誰能在這個問題上給我一些幫助。

我不確定 Tar 能做到這一點。但是,應該可以解壓兩個備份(到不同的目錄),然後使用類似的東西

cd /mnt/oldbackup ; 
find ./ -exec getfacl {} | setfacl /mnt/newbackup/{} 

根據手冊頁,作為輸出getfacl可以用作標準輸入setfacl

沒有辦法將新的元數據放入 tar 存檔中,但是有一種方法可以將元數據從 tar 存檔中提取到文件系統中。只需致電:

star -xp -meta < archive.tar

這不會創建新文件或覆蓋文件內容,而只是將元數據從存檔恢復到本地文件系統中的文件。您很可能還需要 -U (請參見星號手冊頁)“即使存檔中的文件不比文件系統上的文件更新也要執行此操作”。

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