压缩时保留权限

压缩时保留权限

如何在使用压缩文件夹时保留权限zip

我知道如何使用--symlinks是否有类似的权限选项来保留符号链接?

答案1

info-zip(您可能正在使用的程序)可以保存/恢复权限Unix类系统。

提到的是目录在里面手册页

除 Unix 外,不会恢复存储目录的日期、时间和权限。 (在 Windows NT 和后续版本上,时间戳现已恢复。)

保存/恢复读/写/执行的文件权限。但快速检查显示(zip 3.0)setuid/setgid 权限未保留。

该功能不是可选的; zip/unzip 只要有能力就可以这样做。

在其他系统上,保存/恢复权限的功能不太完整。例如,在 Windows 上,ZIP 文件使用来自%temp%文件夹。

进一步阅读:

答案2

Info-Zip 3.0 支持保留文件/目录 UNIX 权限和 UID/GID 所有权数据。zip默认情况下存储它,但您需要unzip以特殊方式使用来恢复它们:

  • unzip必须与标志一起使用-X
  • unzip必须运行以root设置文件/目录 UID/GID。如果您以普通用户身份运行它,则 UID 将始终是当前用户之一,并且仅当当前用户属于该组时才会恢复 GID。

例子:

# zip -v | head -2 | tail -1
This is Zip 3.0 (July 5th 2008), by Info-ZIP.

# unzip -v | head -1
UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.

# touch file1
# mkdir dir1
# chmod 000 file1
# chown 1111 dir1
# ls -ld file1 dir1
drwxr-xr-x 2 1111 root 40 mar 28 20:12 dir1
---------- 1 root root  0 mar 28 20:12 file1

# zip files.zip file1 dir1
  adding: file1 (stored 0%)
  adding: dir1/ (stored 0%)

# unzip -X files.zip -d extracted
Archive:  files.zip
 extracting: extracted/file1         
   creating: extracted/dir1/

# ls -l extracted
total 0
drwxr-xr-x 2 1111 root 40 mar 28 20:12 dir1
---------- 1 root root  0 mar 28 20:12 file1

注意:您还可以unzip与该-K标志一起使用来恢复 SUID/SGID/Sticky 位。

答案3

简短的回答:你不能!zip不保留文件权限。

阅读更多相关内容这里这里

如果您需要保留权限,请考虑使用tar开关--preserve-permissions

相关内容