Не думаю, что ты сможешь сделать это вот так.
Ты должен быть более творческим и, например, разделить вручную.
Заполните карту USB первым 32G:
tar czf - / | dd if=/dev/stdin of=/usbstick/bla bs=32k count=100k iflag=fullblock
Запишите первый 32G полученного tar в пункт назначения
dd if=/usbstick/bla of=/tarfile bs=32k count=100k
Заполните карту USB следующим 32G:
tar czf - / | dd if=/dev/stdin of=/usbstick/bla bs=32k count=100k iflag=fullblock skip=100k
Запишите 32G-64G в пункт назначения:
dd if=/usbstick/bla of=/tarfile bs=32k count=100k seek=100k
Сделайте это (увеличивайте пропускать и искать каждый раз на 100k) до тех пор, пока tar-файл в пункте назначения не будет завершен.
Наконец, извлеките tar
tar -C /destination xzf /tarfile
Чувак, я бы просто подключил кроссоверный кабель.
Если у вас есть следующая команда:
command > file
Стандартный вывод (fd 1) команды command
перенаправляется в файл file
. Если файл не существует, он создается. Команда обычно перенаправляет вывод своей команды в дескриптор файла 1 (stdout).
При использовании выражения, как указано выше (где вывод перенаправляется в файл), файл должен существовать до начала потока вывода. Поэтому bash
создает файл (пустой) и подключает его к stdout команды command
, которая затем начинает писать на этот файловый дескриптор.
Это обрабатывается оболочкой. Команда не знает, пишет ли она в анонимную трубу или в файл.
Учитывая эту команду:
for file in `ls *.csv`; do cat $file | tail -n +2 | cat; done > result.csv
Что здесь происходит, файл result.csv
создается пустым. Затем в цикле for
перебираются все файлы, окончание которых csv
(включая result.csv
). Обрабатываются файлы a.csv
, затем b.csv
и, как минимум, result.csv
. Вторая строка result.csv
в затем b1
. Поэтому в файле результата у вас есть 2 строки.