Performance
從目錄樹中執行 tar.gz 的最快方法?
我有一個目錄樹,其中包含如下文件:
. |-- 00 | |-- 00 | | |-- 00 | | |-- 01 | | |-- 02 | | |-- 03 | | |-- 04 | | |-- 05 [..] | | |-- 97 | | |-- 98 | | `-- 99 | |-- 01 | | |-- 00 | | |-- 01 [...]
每個目錄的末尾大約有200個文件,所以文件很多。製作整個 tar.gz 的最快方法是什麼?我可以為多個 CPU 並行化任務嗎?
在分機上
$$ 234 $$文件系統,我發現
dump
它比 tar 快得多,尤其是對於許多小文件,比如 Maildir。它還使用多個核心進行並發壓縮。我建議將 -b 1024 用於 1mb 塊大小,這比預設的 10kb 塊大小要好得多。
您只需要指定一個(或多個)要包含的頂級目錄,並且
tar
將遞歸地深入到它的所有子目錄中並將所有內容包裝起來:tar cvfz output.tar.gz /path/to/top_folder
(正如@forcefsck 所指出的,如果對像是原始速度,您可以取消在
v
終端上減少冗長的選項。通過不回顯它添加的每個文件,如果 I/O 時間與您的終端交談,您可以節省一點。)