我有具有此类权限的 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 中的文件。正如我之前所说,这些文件实际上并不存在。
因此,只需先提取文件,然后然后改变他们的权限。