首页 > 解决方案 > Tar 无法从 .tar 档案中展开子文件夹

问题描述

出于某种原因,我正在尝试使用单独的命令从 bash 脚本中扩展 tarball 本机存档(不是 Gzipped 版本)。

tar 归档格式:

File1
File2
folder1/file3
folder1/file4

然后我执行下一个命令:

tar xvf archive.tar -C $TEMP_DIR/ File1
tar xvf archive.tar -C $TEMP_DIR/ File2

都成功了

接下来我对文件 3 和 4 执行单独的命令:

tar xvf archive.tar -C $TEMP_DIR/ folder1/file3
tar xvf archive.tar -C $TEMP_DIR/ folder1/file4

两者都失败了:

Tar: folder: Permission denied
Tar: file: No such file or directory

请指教!

标签: bashpermissionstarsubdirectoryarchive

解决方案


您需要确保 archive.tar 在正确的位置,以下脚本重现整个过程:

#!/usr/bin/env bash
mkdir -p /tmp/{dest,src/folder1}
cd /tmp/src
touch File{1,2} folder1/file{3,4}

tar cvf ../archive.tar *

TEMP_DIR=/tmp/dest

cd /tmp
tar xvf archive.tar -C $TEMP_DIR/ File{1,2}
ls  -l $TEMP_DIR
read -pEnter
tar xvf archive.tar -C $TEMP_DIR/ folder1/file{3,4}
ls  -l $TEMP_DIR/folder1

推荐阅读