Понадобилось мне как-то передать линуксовый инсталлятор платформы 1с за пределы локальной сети. Для этого, в принципе как и всегда, я решил воспользоваться яндекс-диском (НЕ реклама). Открыл браузер -> яндекс-диск, мышкой перетащил файл для загрузки и тут меня ждал сюрприз. Система яндекса вежливо послала меня нахуй, сказав, что файл слишком большой. Если я хочу грузить файлы, размером выше 1 гигабайта, то мне необходимо приобрести тариф от 166 руб/мес. Сперва я подумал: - «Вот суки меркантильные», но потом пришёл к выводу, что все мы хотим кушать и 166 рублей в месяц - это не такая уж и большая сумма, но это не касается такого скупердяя, как я :)
Вспомнил я про крошечную, но очень полезную утилиту split, функционал которой сейчас опишу.
Помчались
Чтобы разделить файл на части, в нашем случае до гигабайта, скомандуем следующее
split -a 1 -d --verbose -b 950m server64_8_3_27_1989.zip server64_8_3_27_1989.zip.part_
Отлично! Теперь перекидываем файлы через ЯД, на той стороне принимаем, а что дальше?
Тут нам на помощь приходит ещё одна милипиздрическая утилита cat, которая не только выводит на экран содержание текстового файла, но и как оказалось может «склеить» разделённые сплитом части файлов.
cat server64_8_3_27_1989.zip.part* > server64_8_3_27_1989.zip
Готово! С задачей справились!
А теперь немного детально по ключам сплита
-a или --suffix-length - задать длину суффикса (количество символов) в имени части файла. По умолчанию выставляется 2
-b или --bytes - указываем размер части файла. Аналогично m и g
-d - использовать числовой суффикс в имени конечного файла. Отсчет начинается с нуля. Без указания данного ключа, части будут именоваться буквой алфавита
--numeric-suffixes - то же самое, что и -d, но даёт возможность задать начальное число для отсчёта.
--verbose - выведет информацию о процессе создания частей.
Остальные ключи можно посмотреть по команде
split --help
Там их немного