我正在查找一個命令,它將分別壓縮目錄中的每個文件夾,每個文件夾的名稱反映了原始文件夾名稱。我知道命令批量壓縮目錄下的所有文件/文件夾
焦油czvf example.tar.gz例如/
將壓縮整個文件夾。但是,我還沒有找到批量歸檔的命令。有這樣的命令嗎?
我正在查找一個命令,它將分別壓縮目錄中的每個文件夾,每個文件夾的名稱反映了原始文件夾名稱。我知道命令批量壓縮目錄下的所有文件/文件夾
焦油czvf example.tar.gz例如/
將壓縮整個文件夾。但是,我還沒有找到批量歸檔的命令。有這樣的命令嗎?
find -mindepth 1 -maxdepth 1 -type d -exec tar czf {}.tar.gz {} \;
請注意,我用-maxdepth 1
。
考慮目錄結構:
.
|-- a
| `-- x
|-- b
`-- c
沒有-maxdepth 1
你會得到a.tar.gz
和a/x.tar.gz
。 a.tar.gz
將包含x和其中的所有文件;而a/x.tar.gz
將包含x及其文件。但是,如果這不是目標,它會將這些項目存儲在x中兩次。
更新使用-mindepth 1
爲好,因爲當外界的example/
的example.tar.gz
將創建上運行。
更新 ...和bzip2的:
find -mindepth 1 -maxdepth 1 -type d -exec tar cjf {}.tar.bz2 {} \;
好了,這裏就是我想出了存檔,然後用bzip2壓縮的最大壓縮
發現-mindepth最後的命令1 -maxdepth 1 -type d -exec tar cjf'{}'。tar.bz2'{}'\;
謝謝大家!
是的,我在你的未來看到find,xargs和sed。 – 2009-09-20 20:02:37
是的,你sed它;) – undoIT 2009-09-21 00:24:43