Как разделить все файлы в каталоге в 4 ГБ файлов в другой каталог?

У меня есть каталог, содержащий несколько больших файлов, каждый из которых превышает 4 ГБ. Я хочу скопировать все эти файлы в другую директорию (это смонтированный USB-накопитель FAT32), но разделить файлы до 4 Гб (поскольку целевой диск ограничен файлами этого размера).

Я пробовал это:

split -b 4096G /var/lib/backuppc/images/* /usbdrive/

, но я получаю

split: extra operand `/var/lib/backuppc/images/xxxxxxxxxmyfilesname.tib'

Я делаю что-то не так? (также пробовал «4G» вместо 4096G, без разницы)

3
задан 20 December 2011 в 20:21

2 ответа

Мое предложение было бы сначала создать файл tar:

tar -cf /tmp/bigfile.tar /var/lib/backuppc/images/*

, а затем разделить это:

cd /usbdrive
split -b 4G /tmp/bigfile.tar

Если вы хотите избежать использования временного файла tar, вы можете передать tar непосредственно для разделения:

tar -cf - /var/lib/backuppc/images/* | split -b 4G

Чтобы восстановить это, когда вы доберетесь до места назначения, заново создайте и разархивируйте файл tar:

cat /usbdrive/x* >bigfile.tar
tar -xvf bigfile.tar

Опять, чтобы сделать это без временного файла:

cat /usbdrive/x* | tar -xvf -
0
ответ дан 20 December 2011 в 20:21

split не может принимать более одного входного файла в качестве аргумента.

Вы можете попробовать использовать find для этого

cd /var/lib/backuppc/images && find . -maxdepth 1 -type f -exec split -b 4G '{}' "/usbdrive/images/{}" \;
0
ответ дан 20 December 2011 в 20:21

Другие вопросы по тегам:

Похожие вопросы: