2013-03-27 110 views
0

如何只打包目錄中存在的文件。我試過tar -cvf /tmp/test.tar /tmp/mylog.doc在家裏diretory,但是當我解壓縮它的內容也包括tmp目錄。我只需要文件mylog.doc出現在tar文件中。我看到類似的查詢 Tarring only the files of a directory。但從中得不到多少幫助。僅tar目錄中的文件

回答

2

使用-C命令行參數來指示您想要工作的目錄。然後,您可以使用相對於此目錄包含的文件名。

tar -cvf /tmp/test.tar -C /tmp mylog.doc 

請注意,這不適用於tar文件本身。

+0

它沒有工作。 'tar:懦弱地拒絕創建一個空檔''嘗試tar --help或tar - 使用更多信息' – 2013-03-27 09:43:04

+0

'tar'只是說它無法在目錄'/ tmp'中找到文件'mylog.doc' 。文件是否在那裏? – 2013-03-27 10:05:26

+0

是的,我確定文件在那裏。 – 2013-03-27 10:41:05

0
cd sourcedir ; tar cvf archive.tar ./file_to_tar 

,因爲使用「/路徑/到/文件」或「./path/to/file」:將加上‘路徑/到/’,在出現的tar文件(除非特定的(也可能不便攜式)的選項,否則告訴焦油)

注意:一些不那麼古老的生產系統還提取時仍然不能擺脫領先的「/」。

在那些 '不那麼老' 系統:

tar cvf /tmp/hosts-backup.tar /etc/hosts 
cd /secure/location 
tar xvf /tmp/hosts-backup.tar 

覆蓋文件主機的/ etc /,而不是下一個outputing 「./etc/hosts」 文件/安全/位置! (因爲大多數'最近'焦油現在做:他們現在都默默地忽略尾隨的「/」,使路徑相對而不是絕對的,這是99.9%的人想要的)

我最近被燒:想要提取日誌,並且該日誌最終覆蓋原始位置(並因此覆蓋最近的日誌文件)。在系統上首次使用tar之前,請務必檢查此信息。 (有幾個解決方法,但不是很簡單:chroot和其他命令,如「sar」)

相關問題