可能重複:
gzipping up a set of directories and creating a tar compressed file如何gzip壓縮所有文件中的所有子目錄成一個壓縮文件中的bash
This post介紹如何在目錄結構中的單獨gzip壓縮每個文件。但是,我需要做一些稍微不同的事情。我需要爲某個目錄下的所有文件生成一個大的gzip文件。我還需要能夠指定壓縮文件的輸出文件名(例如files.gz),並覆蓋舊壓縮文件文件(如果已存在)。
可能重複:
gzipping up a set of directories and creating a tar compressed file如何gzip壓縮所有文件中的所有子目錄成一個壓縮文件中的bash
This post介紹如何在目錄結構中的單獨gzip壓縮每個文件。但是,我需要做一些稍微不同的事情。我需要爲某個目錄下的所有文件生成一個大的gzip文件。我還需要能夠指定壓縮文件的輸出文件名(例如files.gz),並覆蓋舊壓縮文件文件(如果已存在)。
tar -zcvf compressFileName.tar.gz folderToCompress
一切folderToCompress會去compressFileName
編輯:審查並提出意見後,我意識到,人們可能會感到困惑與compressFileName沒有擴展名。如果你想要的話,你可以使用壓縮文件名.tar.gz擴展名(建議)
謝謝。這會壓縮「folderToCompress」下的所有內容(即遞歸)嗎? – Doug
folderToCompress中的所有內容都將壓縮文件名 – amitchhajer
您可能想要選擇'compressFileName',因此它包含'.tar.gz'擴展名,否則您會讓其他人都瘋狂。 – drewish
@amitchhajer的帖子適用於GNU tar。如果有人發現這篇文章,需要它到非GNU
系統上工作,他們可以這樣做:
tar cvf - folderToCompress | gzip > compressFileName
要展開存檔:
zcat compressFileName | tar xvf -
除了可移植性以外,如果您想將參數傳遞給gzip(例如--test或--best),此解決方案很有用,因爲afaik甚至GNU tar沒有提供將參數發送到gzip的方法。 –
這是多功能的,因爲您也可以使用其他壓縮機。例如'pigz',因爲它可以更好地利用cpu(一個zip的多線程實現),所以速度更快。 –
有很多的工作遞歸命令壓縮方法並且很高興知道誰是最終受衆。
即如果要發送給某人運行Windows,然後壓縮很可能是最好的:
zip -r file.zip folder_to_zip
unzip filenname.zip
對其他Linux用戶或你的自我焦油是偉大
tar -cvzf filename.tar.gz folder
tar -cvjf filename.tar.bz2 folder # even more compression
#change the -c to -x to above to extract
我們必須要小心與焦油和事情如何tarred /提取,例如如果我跑
cd ~
tar -cvzf passwd.tar.gz /etc/passwd
tar: Removing leading `/' from member names
/etc/passwd
pwd
/home /名爲myUsername
tar -xvzf passwd.tar.gz
這將創造 /家庭/名爲myUsername/etc/passwd文件
不確定的,如果焦油的所有版本中做到這一點:
Removing leading `/' from member names
針對linux-> windows的+1 –
'就其本質gzip'只壓縮單文件。要將多個文件放入一個文件中供後續gzipping使用,請使用'tar'。 – Thomas