提取 tar 存档时仅更改特定所有者

提取 tar 存档时仅更改特定所有者

我有一个 tar 档案,包含两个所有者, 1000 和 0 :

$ tar tfvz archive.tgz
drwxr-xr-x 1000/1000         main/
drwxr-xr-x 0/0               main/root_dir/
drwxr-xr-x 0/0               main/root_dir/home/
-rw-r--r-- 1000/1000         main/root_dir/home/file

有没有一种简单的方法可以仅更改所有者为 1000 的目录/文件的所有权?所有者为 0 的目录/文件必须保持不变。

我在 tar 中没有找到任何选项,也没有找到选择特定所有者的选项,例如tar --no-same-owner更改所有所有者,而不仅仅是所有者 1000(我提取存档以sudo tar xfz archive.tgz允许创建根(0)目录/文件)。

答案1

提取文件后,您可以使用 find 的 uid 开关执行此操作

find /path/to/files -uid 1000 -exec chown newuid:newgid {} +

相关内容