我已经查看了这个问题的多个来源,并且我知道如何提炼文件,但没有任何消息来源告诉我如何陈述文件夹放在哪里一旦它被提取。
我试过这个:
tar -xvf tarball.tar.gz my/folder/im/extracting
当我这样做时,它似乎提取了它,因为它列出了它的内容,但也随之而来的错误:
gzip:stdin:意外的文件结尾 tar:存档 tar 中出现意外的 EOF:错误不可恢复:立即退出
我检查了当前目录,但没有看到该文件夹。
如何做到这一点,或者错误是否阻止在当前目录中创建它?
答案1
tar -xvf tarball.tar.gz my/folder/im/extracting
my/folder/im/extracting
这将提取位置处的存档成员my/folder/im/extracting
。如果存档成员是目录,则提取其内容(包括子目录,递归地)。
如果您想使用 GNU 或 FreeBSD tar 解压到不同的目录(在非嵌入式 Linux、Cygwin、FreeBSD 和 OSX 上也是如此),您可以使用
tar -xvf tarball.tar.gz --transform 's!my/folder/im/extracting!somewhere/else!' my/folder/im/extracting
如果您只想放在my
不同的(现有)目录下,您可以使用
tar -xvf tarball.tar.gz -C different/directory my/folder/im/extracting
错误“gzip:stdin:意外的文件结尾”与您使用 tar 的方式无关。 “Unexpected end of file”意味着 gzip 到达文件末尾,但文件格式表明应该有更多数据。换句话说,文件被截断,例如因为您的下载被中断。
答案2
您可以使用-C
选项tar
指定提取文件的目标目录。但必须事先创建该目标目录。tar
不会为你创建它。
所以你的命令应该看起来像......
mkdir -p my/folder/im/extracting
tar -xvf tarball.tar.gz -C my/folder/im/extracting