Как разделить все файлы в каталоге в 4 ГБ файлов в другой каталог?
У меня есть каталог, содержащий несколько больших файлов, каждый из которых превышает 4 ГБ. Я хочу скопировать все эти файлы в другую директорию (это смонтированный USB-накопитель FAT32), но разделить файлы до 4 Гб (поскольку целевой диск ограничен файлами такого размера).
Я попробовал это:
split -b 4096G /var/lib/backuppc/images/* /usbdrive/
но я получаю
split: extra operand `/var/lib/backuppc/images/xxxxxxxxxmyfilesname.tib'
Я делаю что-то неправильно? (тоже пробовал "4G" вместо 4096G, без разницы)
2 ответа
Мое предложение было бы сначала создать файл tar:
tar -cf /tmp/bigfile.tar /var/lib/backuppc/images/*
затем разделить это:
cd /usbdrive
split -b 4G /tmp/bigfile.tar
Если вы хотите избежать использования временного файла tar, вы можете передать tar напрямую в split:
tar -cf - /var/lib/backuppc/images/* | split -b 4G
Чтобы восстановить это, когда вы доберетесь до места назначения, заново создайте и разархивируйте файл tar:
cat /usbdrive/x* >bigfile.tar
tar -xvf bigfile.tar
Опять же, чтобы сделать это без временного файла:
cat /usbdrive/x* | tar -xvf -
split
не может принимать более одного входного файла в качестве аргумента.
Вы можете попробовать использовать find
за это
cd /var/lib/backuppc/images && find . -maxdepth 1 -type f -exec split -b 4G '{}' "/usbdrive/images/{}" \;