【问题标题】:Tar cannot expand subfolders from .tar archiveTar 无法从 .tar 档案中展开子文件夹
【发布时间】:2020-02-14 18:41:16
【问题描述】:

出于某种原因,我正在尝试使用单独的命令从 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

请指教!

【问题讨论】:

  • 错误真的有Tar(大写T)和folder/file(而不是folder1file3file4)吗?
  • 最可能的答案是TEMP_DIR 在第二组命令期间未设置。如果将tar 替换为echo,它会打印什么?您正在使用哪种 tar 实现(以及什么操作系统)?
  • @jhnc 不,我用它作为原始 tar 和文件名的“短”形式

标签: bash permissions tar subdirectory archive


【解决方案1】:

您需要确保 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

【讨论】:

    猜你喜欢
    • 2019-04-18
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多