使用 tar 命令的权限
Permission with tar command
我有一些关于 linux "tar" command.I 的问题想解压一个 config001.gz 到一个目录(具有所有者 root ,组 root 和 777 权限,如中所示图片).
我的原始目录和tar获取目录如图所示。
我的问题是:
- 为什么config001.gz文件中有一个空文件夹(我尝试tar两个文件放在一起,然后查看config002.tgz文件,没有空目录)?
- 如果我不在命令后附加 --no-overwrite-dir,它会引发错误,"tar" 想要更改什么权限?
- 为什么 --no-overwrite-dir 选项可以解决问题
我的坐骑信息:
fuse.mfs rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other 0 0
why there is en empty folder in a config001.tgz file?
tar 存档中包含 "root folder"。 tar 所在的文件夹。包括权限、所有者和组、权限和 creation/modification(或其中之一,我不确定)日期。您可以创建这样的存档:
mkdir -p /tmp/a
cd /tmp/a
echo 123 > 1
echo 234 > 2
tar cfvp /tmp/test.tar .
# and inspect with:
tar -tvf ./test.tar
drwxr-xr-x kamil/kamil 0 2019-07-15 12:50 ./
-rw-r--r-- kamil/kamil 4 2019-07-15 12:50 ./2
-rw-r--r-- kamil/kamil 4 2019-07-15 12:50 ./1
通过指定 .
,即。当前目录,关于当前目录本身的信息将包含在他tar
中。 IE。有关所有者和组、权限和日期的信息。
if I don't append --no-overwrite-dir after command,it will raise error, what permission does "tar" want to change?
tar
想更改您所在目录的权限。 hpc_dir
目录。 hpc_dir
归 root
所有,所以 tar
不能 change/touch 它。
why --no-overwrite-dir option can fix the problem?
因为 tar
看到当前目录 hpc_dir
存在。因此,tar
不会尝试创建目录,也不会尝试更改目录的所有者和组权限,也不会尝试恢复目录的创建日期。
您可以使用 mkdir somedir; tar xzfv archive.tar -C somedir
- 这样 somedir
将由当前用户创建,因此 tar
将能够更改其属性。
或者您可以只更改 hpc_dir
目录的所有者,让您的用户修改它。
我有一些关于 linux "tar" command.I 的问题想解压一个 config001.gz 到一个目录(具有所有者 root ,组 root 和 777 权限,如中所示图片).
我的原始目录和tar获取目录如图所示。
我的问题是:
- 为什么config001.gz文件中有一个空文件夹(我尝试tar两个文件放在一起,然后查看config002.tgz文件,没有空目录)?
- 如果我不在命令后附加 --no-overwrite-dir,它会引发错误,"tar" 想要更改什么权限?
- 为什么 --no-overwrite-dir 选项可以解决问题
我的坐骑信息: fuse.mfs rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other 0 0
why there is en empty folder in a config001.tgz file?
tar 存档中包含 "root folder"。 tar 所在的文件夹。包括权限、所有者和组、权限和 creation/modification(或其中之一,我不确定)日期。您可以创建这样的存档:
mkdir -p /tmp/a
cd /tmp/a
echo 123 > 1
echo 234 > 2
tar cfvp /tmp/test.tar .
# and inspect with:
tar -tvf ./test.tar
drwxr-xr-x kamil/kamil 0 2019-07-15 12:50 ./
-rw-r--r-- kamil/kamil 4 2019-07-15 12:50 ./2
-rw-r--r-- kamil/kamil 4 2019-07-15 12:50 ./1
通过指定 .
,即。当前目录,关于当前目录本身的信息将包含在他tar
中。 IE。有关所有者和组、权限和日期的信息。
if I don't append --no-overwrite-dir after command,it will raise error, what permission does "tar" want to change?
tar
想更改您所在目录的权限。 hpc_dir
目录。 hpc_dir
归 root
所有,所以 tar
不能 change/touch 它。
why --no-overwrite-dir option can fix the problem?
因为 tar
看到当前目录 hpc_dir
存在。因此,tar
不会尝试创建目录,也不会尝试更改目录的所有者和组权限,也不会尝试恢复目录的创建日期。
您可以使用 mkdir somedir; tar xzfv archive.tar -C somedir
- 这样 somedir
将由当前用户创建,因此 tar
将能够更改其属性。
或者您可以只更改 hpc_dir
目录的所有者,让您的用户修改它。