2011-06-15 72 views
2

我有一個基於某些現有文件創建tar的進程,然後我希望另一個進程使用該tar文件並向其中添加更多文件。如何以編程方式將文件添加到現有的tar文件

這是如何以編程方式完成的?

+0

tar -r追加到tar文件中。你還想要什麼? – Beta 2011-06-15 16:10:45

+0

它可以將文件放在tar文件的特定位置嗎? (假設有某種文件夾結構) – coffee 2011-06-15 17:10:07

+0

位置?你的意思是你想讓新文件'foo'作爲'/ some/path/foo'進入,或者你希望它成爲tarfile中的第三個文件,或者你希望它從tarfile的開頭開始140kB? – Beta 2011-06-15 17:45:35

回答

2

在tarfile中沒有這樣的文件夾。每個文件可以有一個路徑,所以一個tar文件可能包含

/some/path/foo 
/some/path/bar 
/another/path/baz 

如果您有要添加到tar文件作爲/some/path/quartz文件/elsewhere/quartz,這將做到這一點:

tar -rvf tarfilename --transform 's,.*/,/some/path/,' /elsewhere/quartz 

(這將在GNU焦油中工作,我不能對其他版本作出承諾。)

單引號內的東西是一個正則表達式替換命令,大致是「將所有內容都放到一個斜槓(儘可能多)並替換它與/some/path/「。

+1

等等,什麼?我只是在名爲files.tar的tar文件中嘗試了'tar -rf files.tar file2',其中有一個名爲file1的文件,當我刪除文件和untarred files.tar('tar -xf files.tar')時,我得到了兩個文件。它也適用於目錄很好。我沒有看到複雜解決方案的必要性。 – 2013-10-29 20:50:24

相關問題