Конечно, можно. :) Просто бывают ситуации, когда это нецелесообразно или же просто нельзя… FAT остается самой распространенной ФС для flash-накопителей.
Если получателем является Windows система, то на ней эффекта, аналогичного cat file.part* > file можно достичь командой copy file.part1+file.part2+...+file.partn file
эх, напомнило далекую молодость, когда у домашнего провайдера SMTP-трафик до собственного сервера был бесплатным и можно было провернуть тривиальную махинацию: на институтский сервер скачать большой файл бесплатно wget-ом, потом его за-split-ить (так как у провайдера было ограничение на размер аттачмента) и отправить на провайдерский ящик файлы mail-ом, а на домашнем компьютере консольным почтовым клиентом собрать опять все воедино.
провайдер через пару месяцев просек фишку и стал раз за разом снижать лимит на размер приаттаченных файлов. а я всего лишь менял в скрипте параметр для split-а на кусочки соотв. размера и мне было все равно, сколько их получалось :) продолжалась наша неравная битва почти год, потом я съехал с той квартиры непобежденный :)
Дык эта. Легко. Получишь большой такой мегархив. Одна беда — неясно чем его потом распаковывать. В принципе хорошая задачка для собеседования на позицию сисадмина: кто-то соединил winrar'овские архивы в одно большое месиво командой «cat» — как бы оттуда достать файлы. Пасиба за наводку.
Никак, кроме повторного разбиения на те же кусочки и сборки уже раром. А вот по какому признаку в сырых данных вычленять кусочки — это уже вопрос не к админам, а к программерам.
Как раз к админам. Я посмотрел файл /usr/share/misc/magic откуда узнал что магическая последовательность для архивов RAR это «Rar!». Дальше man grep, ищу по слову offset, нахожу опцию -b. Итак: grep -b -o -a 'Rar!' file. После этого пользуясь полученным списком смещений и командой dd, достаю исходные файлы.
Браво! Вполне хорошее админское решение. А то сразу «к программистам, к программистам». Конечно если внутри архива лежит файл с названием «Rar!.exe», то задача становится сложнее, но задача админа как раз и отличается от программистской тем, что нужно как правило не 100% решение, а 99% — но зато здесь и сейчас, а не через месяц работы.
Кстати интересная тема, вот для меня когда-то давно было загадкой, как рекурсивно сделать chmod для отдельно для папок и для файлов. А то ведь делаешь rwrwrw, и в папки зайти не можешь ;)
Имейте в виду, что -exec неэффективен, так как производит запуск программы для каждого файла. Хотя для частного случая с chmod уже написали, как его нужно запускать, но если для какого-то другого случая вам нужен будет именно find и при этом программа поддерживает список файлов в аргументах, то лучше пользоваться xargs, так как он запустит chmod не тысячу раз, а всего десяток:
find. -type f -print0 | xargs -0 chmod $1
Если у вас гарантированно нет файлов с пробелами или переносами строк, то можно чуть проще:
find. -type f | xargs chmod $1
Признаться, действительно, несколько колебался прежде чем опубликовать такое простое решение, ведь это не более, чем пример. В итоге решил, что уже достаточное число пользотвателей мигрирует на Linux и используют его для повседневных задач. Популяризация Ubuntu и развитие интерфейсов тому сильно помогают. Такой контингент практически не имеет опыта работы в консоли, ведь многие задачи (создание/извлечение архивов) решаются правым кликом. Однако, что делать, если понадобилось срочно дать другу на flash 8 Гбайтовый образ, а устройство форматировано в FAT32? Именно для такого dummy-случая и пользователя была размещена эта информация. Естественно, у корифеев консоли она вызовет неприятную реакцию, но для просто пользователя, надеюсь, будет практическая помощь.
Признаться, действительно, несколько колебался прежде чем опубликовать такое простое решение, ведь это не более, чем пример. В итоге решил, что уже достаточное число пользователей мигрирует на Linux и используют его для повседневных задач. Популяризация Ubuntu и развитие интерфейсов тому сильно помогают. Такой контингент практически не имеет опыта работы в консоли, ведь многие задачи (тот же процесс создание/извлечение архивов, например) решаются правым кликом. Однако, что делать, если понадобилось срочно дать другу на flash 8 Гбайтовый образ, а устройство форматировано в FAT32? Именно для такого dummy-случая и пользователя была размещена эта информация. Естественно, у корифеев консоли она вызовет неприятную реакцию, но для простого пользователя, надеюсь, будет практическая помощь.
Именно поэтому команда split и не будет создавать такие файлы, а грязно выругается: split: Исчерпаны суффиксы для выходных файлов… Так что галактико безопасносте…
Да, простите, все верно. Действительно, дело в том, что split создает «правильные» суффиксы (т. е. 00, 01, 02, ..., 10, 11, 12, ...), поэтому cat собирает в правильном порядке. В примере указаны ключи "-a 1 -d", что значит к имени добавлять цифровой суффикс единичной длины. В случае с "-a 2 -d" было бы *.part00, *.part01 и т. д.
каждый раз увеличивая N от нуля до тех пор, пока dd не запишет пустой файл.
Ну а на другом компьютере каждый раз делать cat /flash/big.iso.part >> /dir/big.iso, а не тратить двойной объем и время на копирование всех частей и их собирание.
dd есть для Windows XP? Оказалось, что приведенный способ универсален для Linux/Mac OS/Windows (естественно, при наличии соответствующих программ в системе).
У меня даже мысли не возникло, что вопрос Mr Floppy может быть настолько простым. Как-то сомневаюсь, что он действительно таким был.
Я вижу ситуацию совсем по-другому:
1) файл размером 10 гиг на жёстком диске
2) места на жёстком диске, допустим, 2 гига
3) флешка размером 1 гиг
4) компьютер с кучей места, куда нужно перенести файл из пункта 1.
$ split --help
…
SIZE may have a multiplier suffix:
b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,
GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y.
Обычно, когда получателем являлся неискушенный пользователь виндоуз, я использовал некомпрессированные zip архивы разбитые на тома.(Не компрессировал, когда надо было разбить уже сжатые файлы, например длинную мп3 дорожку) Файлы умеют соединять некоторые командеры, также про copy in1 + in2 out уже написали до меня. А вообще эта проблема уже уходит на второй план.
Я имел ввиду не настолько неискушенного, чтобы у него не стояло архиватора вообще. Таким наверное надо тащить богомерзкие самораспаковывающиеся архивы. А поддержка рара есть реже чем зип томов (по крайней мере на моем опыте, у вас мог быть другой). У меня на компьютере вообще рара не стоит. Честно говоря, я могу прочитать его лицензию, чтобы поставить, но я лучше в это время пойду побегать в парк или поучу язык. Ну или, на худой конец, почитаю (откоментирую) что нибудь такое же бесполезное, как чтение раровской лицензии, но гораздо более интересное.
ЗЫ а вообще Вы, наверное, правы — видимо пользование разбитых на тома зипов видимо тоже моветон.
чем выполняется поддержка томов в zip на Ваших компах?
я, честно говоря, кроме 7z и TC других прог не знаю
7z рекомендовал к пользованию всем своим коллегам
разбитие на тома — это правильно!
не люблю когда выкладывают файлик на несколько гиг
а потом при скачивании оказывается, что гдето чтото поломалось и давай по новой
а вот нарезанное по 100-500М — вполне приемлемый вариант
наши заказчики в свое время признавали только zip
последнее время успешно пользуют rar и 7z. особенно когда нужны многотомные архивы
Раньше был еще широко распространен WinZip.
Мне казалось винрар тоже хавает многотомные зип тома, хотя не пользовался это программой несколько лет.
>чем выполняется поддержка томов в zip на Ваших компах?
У меня file roller «из коробки» открывает.
Простой способ переноса больших файлов по частям