Permissions
僅將權限和所有權從一個 tar 文件複製到另一個
我有兩個 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 (請參見星號手冊頁)“即使存檔中的文件不比文件系統上的文件更新也要執行此操作”。