更改现有 tar.gz 文件内容的权限

更改现有 tar.gz 文件内容的权限

我有具有此类权限的 tar.gz 文件

-rwxrwxrwx 1 sbesnard SBC 1118627  7 dec 11:34 LE72300832015207-SC20161121192747.tar.gz

但是,当我这样更改 tar.gz 文件的权限时chmod -R a+rwx .,tar.gz 文件中文件的权限并没有改变。

tar -ztvf LE72300832015207-SC20161121192747.tar.gz    
-rw-r--r-- espa/ie      223389 2016-10-30 20:45 LT52300831998344COA00_sr_band3.tif

关于如何更改 tar.gz 文件中每个文件的权限,您有什么想法吗?

答案1

您可以在 Emacs 中打开存档文件并编辑存档模式目录列表中的权限,而无需提取即可更改存档中的权限。

“键 M、G 和 O 分别更改文件的权限位、组和所有者。

保存 Tar 缓冲区会将您对组件所做的更改写入磁盘的新版本档案。”

您甚至不需要 tar 程序,因为 Emacs 会直接读取文件。gzip不过您还是需要它。

https://www.gnu.org/software/emacs/manual/html_node/emacs/File-Archives.html

答案2

是的。权限是文件系统上文件的一个功能。tarball 中的文件实际上并不存在于文件系统中。它们被编码在 tarball 中。因此,chmod命令无法看到它们,也不会明显影响它们。

解压 tarball 时,应用的权限是系统上的默认文件创建权限。这是因为解压文件会导致其中包含的文件创建。这可以在创建 tarball 时进行修改,例如,您可以将其设置为保留原始权限,但您不能使用常规文件系统命令影响已存储在 tarball 中的文件。正如我之前所说,这些文件实际上并不存在。

因此,只需先提取文件,然后然后改变他们的权限。

相关内容