Files

如何拆分文件並將零件保存到多個位置?

  • April 15, 2015

如何將大文件拆分為多個較小的塊並將其每個部分寫入單獨的位置?

split命令似乎只將所有文件輸出到一個位置。

我需要做的上下文如下:我必須通過創建壓縮複製映像來備份一個大硬碟。我沒有任何外部硬碟可以將壓縮圖像作為一個整體來放置。所以我需要一些方法將圖像拆分並寫入多個位置。

對於複製和壓縮圖像,我想到的是以下內容。

dd if=/dev/sda conv=sync,noerror bs=64K | gzip -c | split -b 110g - <Multiple locations for each piece>

我的一個選擇是使用連接在一起的所有外部硬碟創建一個軟體 RAID 0 分區,並將壓縮映像寫入其中。但如果存在更簡單的解決方案(使用內置 gnu/linux 命令),那就太好了。

我也可以一次只 dd 大硬碟的一小部分,並在循環中重複執行(使用 dd 的 seek 和 count 參數)。但除非我用 gzip 壓縮它,否則我不知道單個 110Gb 外部硬碟可以容納多少塊。

我認為你可以擺脫使用split’s --filter=COMMAND

... | split -b <SIZE> -d - part --filter=./split-filter

./split-filter類似的東西在哪裡

#!/bin/bash

set -e

n="${FILE#part}"
case $((10#$n%3)) in
   0)
       dd bs=64K >"path1/$FILE"
       ;;
   1)
       dd bs=64K >"path2/$FILE"
       ;;
   2)
       dd bs=64K >"path3/$FILE"
       ;;
esac

引用自:https://unix.stackexchange.com/questions/196284