Shell

從 tarball 中提取某個文件夾 - 我如何告訴它在提取後將文件放在哪裡?

  • January 22, 2020

我已經查看了這個問題的多個來源,並且我知道如何提取文件,但是沒有一個來源告訴我如何說明在提取文件夾後將其放置在哪裡

我試過這個:

tar -xvf tarball.tar.gz my/folder/im/extracting

當我這樣做時,它似乎提取了它,因為它列出了它的內容,但也跟著錯誤:

gzip:stdin:文件tar意外結束:歸檔tar中出現意外EOF:錯誤不可恢復:現在退出

我檢查了目前目錄,但沒有看到該文件夾。

如何做到這一點,或者是錯誤阻止在目前目錄中創建它?

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: unexpected end of file”與您使用 tar 的方式無關。“Unexpected end of file”意味著 gzip 到達了文件的末尾,但文件格式表明應該有更多的數據。換句話說,文件被截斷,例如因為您的下載被中斷。

引用自:https://unix.stackexchange.com/questions/273856