使用 tar 将最新的 .gz 文件提取到另一个目录中

Posted

技术标签:

【中文标题】使用 tar 将最新的 .gz 文件提取到另一个目录中【英文标题】:using tar to extract latest .gz file into another directory 【发布时间】:2015-10-29 01:18:42 【问题描述】:

下面是我的代码

#!/bin/bash

# Location for backups to be saved.

EXTRACTTO=/opt/test_script

#stores the latest .gz file to be extracted

EXTRACTFROM= ls -t /opt/scripts/AXDB1.clean_pof_backup* | head -1

echo $EXTRACTFROM

tar -xf $EXTRACTFROM -C $EXTRACTTO

EXTRACTTO 包含我要将 .gz 文件提取到的路径。

EXTRACTFROM 包含最新的 .gz 文件,将被提取。

但是,当我在 tar 命令中传递包含目录路径的变量时

它给出了无效目录错误。

有人能告诉我如何在这里完成我的任务吗?

【问题讨论】:

你能用 sh -x 重新运行脚本并发布输出吗?否则,EXTRACTFROM= 需要 EXTRACTFROM=whatever_cmd 并且您应该在执行 tar 之前检查 null/failure。 【参考方案1】:

从报错信息来看,似乎是EXTRACTTO不正确。打印出来并尝试手动运行 tar 命令。

【讨论】:

EXTRCTTO 打印 /opt/test_script。这是一个有效的目录。 将最后一行更改为: echo tar -xf $EXTRACTFROM -C $EXTRACTTO 然后运行该命令。

以上是关于使用 tar 将最新的 .gz 文件提取到另一个目录中的主要内容,如果未能解决你的问题,请参考以下文章

使用 perl 提取 tar.gz 文件时内存不足

如何提取 filename.tar.gz 文件

在 perl 中提取 tar.gz 文件

bash:仅提取 tar.gz 存档的一部分

如何将我的 .tar.gz 文件转换为 shutil.copyfileobj 的类文件对象?

使用 PHP,我如何识别(如果适用,解压缩)并从 .tar、.gz、.tar.gz、.zip 文件中提取文件?