簡體   English   中英

如何將所有子目錄中的所有文件gzip壓縮為bash中的一個壓縮文件

[英]How to gzip all files in all sub-directories into one compressed file in bash

可能重復:
gzipping一組目錄並創建一個tar壓縮文件

這篇文章描述了如何在目錄結構中單獨gzip每個文件。 但是,我需要做一些稍微不同的事情。 我需要為某個目錄下的所有文件生成一個大的gzip文件。 我還需要能夠為壓縮文件指定輸出文件名(例如,files.gz)並覆蓋舊的壓縮文件文件(如果已經存在)。

tar -zcvf compressFileName.tar.gz folderToCompress

folderToCompress中的所有內容都將轉到compressFileName

編輯:經過審核和評論后,我意識到人們可能會在沒有擴展名的情況下與compressFileName混淆。 如果需要,可以使用.tar.gz擴展名(如建議的那樣)和compressFileName

有許多壓縮方法可以遞歸地運行命令行,並且知道最終用戶是誰。

即如果它被發送給運行Windows的人,那么zip可能是最好的:

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

人們必須小心使用焦油以及如何塗抹/提取物品,例如,如果我跑步

cd ~
tar -cvzf passwd.tar.gz /etc/passwd
tar: Removing leading `/' from member names
/etc/passwd


pwd

/家/名為myUsername

tar -xvzf passwd.tar.gz

這將創建/ home / myusername / etc / passwd

不確定所有版本的tar是否都這樣做:

 Removing leading `/' from member names

@amitchhajer的帖子適用於GNU tar。 如果有人發現這篇文章並且需要它在NON GNU系統上工作,他們可以這樣做:

tar cvf - folderToCompress | gzip > compressFileName

要擴展存檔:

zcat compressFileName | tar xvf -

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM