我在 /tmp/a.crt 中有一個檔案,我必須制作包含 a.crt 而不是 tmp/a.crt 的 a.tgz。當我通過 java 運行 tar 命令時,我無法導航到 /tmp 并執行tar -cvf a.tgz a.crt
如果我運行tar -cvf a.tgz /tmp/a.crt它會創建一個包含 tmp/a.crt 的 a.tgz 。
我試過了,tar --exclude='/tmp' -cvf a.tgz /tmp/a.crt 但是在去皮的時候它說
gzip:標準輸入:不是 gzip 格式
焦油:孩子回傳狀態1
有什么辦法可以達到我的要求。
uj5u.com熱心網友回復:
如果要創建壓縮的 tar 檔案(.tgz或.tar.gz),則必須使用選項z. 否則,您只有一個未壓縮的 tar 檔案 ( .tar)。您可能在創建程序中省略了此選項。
uj5u.com熱心網友回復:
這是一個展示你想要什么的 Bash 會話(據我了解):
# first, create test files
$ mkdir tmp
$ touch tmp/a.crt
$ find .
.
./tmp
./tmp/a.crt
# use "-C" to keep the filename out of the archive
$ tar -C tmp -czvf a.tgz a.crt
a.crt
# confirm results
$ tar tf a.tgz
a.crt
如您所見,在最終a.tgz檔案中,沒有tmp/目錄存在。
這通常是一個壞主意,會創建有時稱為“焦油炸彈”(鏈接)的東西。但大概你有一個很好的理由(:
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/407427.html
標籤:
上一篇:如何連接由回圈拆分的檔案?
下一篇:如何提取字串unix的數字
