脚本中的sed创建了损坏的.tar.gz文件

用户名

我正在安装一个具有文件“ drown.bin”(Bourne Shell脚本文本可执行文件)的程序。当我在执行过程中执行此文件时,出现错误

gzip:stdin:文件tar意外结束:子级返回状态1 tar:错误退出由于先前的错误而延迟

以下是文件内容(仅粘贴Bash部分,其余为机器语言)

dir_tmp=/tmp/.$(date +"%y%m%d%H%M%S")
mkdir /$dir_tmp >/dev/null
sed -n -e '1,/^exit 0$/!p' $0 > "${dir_tmp}/.make-3000.tar.gz" 2>/dev/null
cd $dir_tmp >/dev/null
tar xvfz .make*.tar.gz >/dev/null
./.make
rm -rf $dir_tmp >/dev/null
exit 0

有人可以告诉“ sed”命令出什么问题以创建损坏的.tar.gz文件。我已经尝试了3个具有不同CentOS版本的系统。

geert3

sed失败的不是命令,而是tar命令。

这是一个“自解压” tar文件。位于最前面的脚本会尝试从行之后开始解压缩文件的其余部分exit 0文件的其余部分可能已损坏。

如果您下载了它,请再试一次。如果从其他地方(尤其是FTP)复制了它,请确保使用二进制模式。

如果这不起作用,您可以尝试执行以下操作:

  1. 将脚本文件复制到扩展名为.tgz的文件中,例如 cp drown.bin mycopy.tgz
  2. 编辑副本,删除所有脚本行,直到exit 0一行并包括该行。现在,该文件应该是纯tar.gz文件。
  3. 在命令行上,执行tar tzvf mycopy.tgz以查看内容。尝试tar xzvf mycopy.tgz实际打开包装。这可能会因与您刚遇到的相同错误而失败,但是至少现在您可以看到提取的内容,至少是未失败的部分。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

提取.gz文件中的.TAR文件

使用PHP创建.tar.gz文件

在Python中读取.tar.gz文件

排除tar.gz中的文件

如何在C#中创建tar.gz文件

如何重命名.tar.gz文件而不提取内容并在UBUNTU中创建新的.tar.gz文件?

创建.tar.gz文件时不包括目录

创建tar.gz时避免多余的文件

从Nim中的tar.gz存档中读取文件

如何在Windows中打开.tar.gz文件?

如何从tar.gz中仅提取所需的文件?

在setup.py中包含本地tar.gz文件

如何从github R包中获取tar.gz文件

Ruby-列出tar.gz档案中的文件

如何从tar.gz存档中删除单个文件

提取不同子目录中的.tar.gz文件

如何完全从Java中的内存(无文件)中的对象创建tar或tar.gz存档

解压缩.gz文件并将其存储在.tar.gz档案中

tar.gz在压缩之前或之后将gzip文件压缩到tar中吗?

文件夹中的tar + gz文件,不放入所有子文件夹中

尝试从文件和目录创建tar.gz文件时出现“写得太长”错误

从“发送到”批处理文件到“ .tar.gz”文件中快速执行“ tar -cf”命令

在python中,如果解压缩tar.gz文件,如何获取或设置结果文件的名称

如何在现有的tar.gz归档文件中添加/更新文件?

如何根据文本文件中的匹配重命名tar.gz文件

如何在.tar.gz中获取文件大小(原始文件大小)而不解压缩?

是否可以将zip和tar.gz文件作为目录集成到文件系统中

在超过20天的文件夹中查找tar.gz文件并删除

如何使用Windows的7-Zip GUI创建.tar.gz文件?