bash - 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
请指教!
解决方案
您需要确保 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
推荐阅读
- ember.js - 如何将参数传递给 ember 组件?
- mysql - 想连接 Power Bi 和 MySQL
- javascript - 检查输入值是否减少/增加
- javascript - CRUD op Express.js Node.js Mysql 无法使用 MVC 插入
- firebase-cloud-messaging - fcm 消息 ID 中的前缀
- python - python中2个数据框的“智能合并”
- c# - 统一字典有问题
- flutter - Flutter TextFormField 在失去焦点时触发onFieldSubmitted
- xml - 在布局文件中包含 androidx.constraintlayout.helper.widget.Flow
- weka - Weka中的混淆矩阵