Users

列出在壓縮包中找到的所有使用者:組的最簡單方法是什麼?

  • October 14, 2019

我正在將一些數據從舊伺服器安裝到新伺服器。

由於我的舊伺服器已經使用了很長時間,因此我有大量的遺留數據,其中最肯定的是遺留使用者和組名。

提取時, tar 盡最大努力按名稱匹配使用者和組資訊,並使用標識符作為備份或目前使用者作為最後的手段。

我想做的是確保所有使用者和組在我進行提取之前都存在。這樣所有文件都會獲得正確的 ID。

為此,我能想到的最好方法是列出在 tar 文件中找到的所有使用者名和組名。我知道我可以使用該tar tvf backup.tar命令列出所有文件,但是我必須想出一種方法來提取正確的兩個名稱。

我想知道是否有比使用該tv選項更簡單的方法。一些僅提取使用者名和組名的工具或命令行選項,我可以使用它sort -u來將列表減少為唯一條目。

有人知道這樣的功能嗎?

有趣的問題。通過快速瀏覽手冊頁(搜尋“使用者”,當沒有出現結果時,搜尋“所有者”),應該這樣做:

tar xf thetarball.tgz --to-command='sh -c "echo $TAR_UNAME $TAR_GNAME"' | sort | uniq -c

顯然,根據您的需要更改腳本。您可能需要$TAR_UIDand$TAR_GID而不是某些案例的名稱。

我還建議您閱讀 ; 的--owner-map--group-map選項tar。它們聽起來可以極大地使您的案例受益,並且比提前創建所有使用者和組要簡單得多。

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