Pull to refresh

Comments 69

Flash drive можно и в NTFS, и в Ext форматировать. =)
Конечно, можно. :) Просто бывают ситуации, когда это нецелесообразно или же просто нельзя… FAT остается самой распространенной ФС для flash-накопителей.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Если получателем является Windows система, то на ней эффекта, аналогичного cat file.part* > file можно достичь командой copy file.part1+file.part2+...+file.partn file
Спасибо за замечание! Windows в распоряжении нет, поэтому эта система не учитывалась — теперь буду знать! Еще раз спасибо! :)
Я бы сказал copy /b file.part1+file.part2 file
На всякий случай.
Ещё порекомендую BusyBox для windows — весь набор линуксовых примочек в 1 маленьком .exe
Наверное, стоит попробовать… Все-таки он более относится к Linux.
когда-то в институте пользовался этими командами для переноса больших архивов на дискетах)))
эх, напомнило далекую молодость, когда у домашнего провайдера SMTP-трафик до собственного сервера был бесплатным и можно было провернуть тривиальную махинацию: на институтский сервер скачать большой файл бесплатно wget-ом, потом его за-split-ить (так как у провайдера было ограничение на размер аттачмента) и отправить на провайдерский ящик файлы mail-ом, а на домашнем компьютере консольным почтовым клиентом собрать опять все воедино.

провайдер через пару месяцев просек фишку и стал раз за разом снижать лимит на размер приаттаченных файлов. а я всего лишь менял в скрипте параметр для split-а на кусочки соотв. размера и мне было все равно, сколько их получалось :) продолжалась наша неравная битва почти год, потом я съехал с той квартиры непобежденный :)

спасибо за заметку, split — отличнейшая штука!
А cat поможет мне соединять разбитые winrar'ом архивы?
Дык эта. Легко. Получишь большой такой мегархив. Одна беда — неясно чем его потом распаковывать. В принципе хорошая задачка для собеседования на позицию сисадмина: кто-то соединил winrar'овские архивы в одно большое месиво командой «cat» — как бы оттуда достать файлы. Пасиба за наводку.
Никак, кроме повторного разбиения на те же кусочки и сборки уже раром. А вот по какому признаку в сырых данных вычленять кусочки — это уже вопрос не к админам, а к программерам.
Как раз к админам. Я посмотрел файл /usr/share/misc/magic откуда узнал что магическая последовательность для архивов RAR это «Rar!». Дальше man grep, ищу по слову offset, нахожу опцию -b. Итак: grep -b -o -a 'Rar!' file. После этого пользуясь полученным списком смещений и командой dd, достаю исходные файлы.
Браво! Вполне хорошее админское решение. А то сразу «к программистам, к программистам». Конечно если внутри архива лежит файл с названием «Rar!.exe», то задача становится сложнее, но задача админа как раз и отличается от программистской тем, что нужно как правило не 100% решение, а 99% — но зато здесь и сейчас, а не через месяц работы.
Давайте теперь по каждому мануальному решению создадим топик, будет здорово.
Поддерживаю, будет интересно почитать об этом.
Я вообще-то пошутил.
Но раз вы такой серьезный, вот вам:

find. -name '*.php' -exec php -l {} \;

найдет все файлы с расширением .php в текущей директории и проверит их синтасис :)
Кстати интересная тема, вот для меня когда-то давно было загадкой, как рекурсивно сделать chmod для отдельно для папок и для файлов. А то ведь делаешь rwrwrw, и в папки зайти не можешь ;)

#!/bin/bash
find ./ \( -type f -exec chmod $1 {} \; \) -o \( -type d -exec chmod $2 {} \; \);
Имейте в виду, что -exec неэффективен, так как производит запуск программы для каждого файла. Хотя для частного случая с chmod уже написали, как его нужно запускать, но если для какого-то другого случая вам нужен будет именно find и при этом программа поддерживает список файлов в аргументах, то лучше пользоваться xargs, так как он запустит chmod не тысячу раз, а всего десяток:
find. -type f -print0 | xargs -0 chmod $1
Если у вас гарантированно нет файлов с пробелами или переносами строк, то можно чуть проще:
find. -type f | xargs chmod $1
Для вашей проблемы не нужно никакого рекурсивного chmod'а. Нужно делать

chmod +rwX -R.

Читайте man на тему разницы между «x» и «X»…
Во во, проблема простая, а какие интересные решения находятся )
Признаться, действительно, несколько колебался прежде чем опубликовать такое простое решение, ведь это не более, чем пример. В итоге решил, что уже достаточное число пользотвателей мигрирует на Linux и используют его для повседневных задач. Популяризация Ubuntu и развитие интерфейсов тому сильно помогают. Такой контингент практически не имеет опыта работы в консоли, ведь многие задачи (создание/извлечение архивов) решаются правым кликом. Однако, что делать, если понадобилось срочно дать другу на flash 8 Гбайтовый образ, а устройство форматировано в FAT32? Именно для такого dummy-случая и пользователя была размещена эта информация. Естественно, у корифеев консоли она вызовет неприятную реакцию, но для просто пользователя, надеюсь, будет практическая помощь.
Спасибо за замечание! Windows в распоряжении нет, поэтому эта система не учитывалась — теперь буду знать! Еще раз спасибо! :)
Признаться, действительно, несколько колебался прежде чем опубликовать такое простое решение, ведь это не более, чем пример. В итоге решил, что уже достаточное число пользователей мигрирует на Linux и используют его для повседневных задач. Популяризация Ubuntu и развитие интерфейсов тому сильно помогают. Такой контингент практически не имеет опыта работы в консоли, ведь многие задачи (тот же процесс создание/извлечение архивов, например) решаются правым кликом. Однако, что делать, если понадобилось срочно дать другу на flash 8 Гбайтовый образ, а устройство форматировано в FAT32? Именно для такого dummy-случая и пользователя была размещена эта информация. Естественно, у корифеев консоли она вызовет неприятную реакцию, но для простого пользователя, надеюсь, будет практическая помощь.
Спасибо за замечание! Windows в распоряжении нет, поэтому эта система не учитывалась — теперь буду знать! Еще раз спасибо! :)
для Windows split доступен в пакете GnuWin32 (Core Utils)

распаковать в папку windows/system32
парсер — лох
garr.dl.sourceforge.net/sourceforge/gnuwin32/coreutils-5.3.0.exe
Скажите, а cat * правильно соберёт файлы
part1
part2
part3

part9
part10
part11

или он их соберёт так?

part1
part10
part11
part2

part9

?
Второе. Для проверки — echo *
Правильно. Первый вариант.
Так первый или второй? Два разных ответа получил.
Проверьте:
$ for ((i=1;i<=11;i++)); do echo $i > part$i; done
$ cat part* > testfile
$ cat testfile
1
10
11
2
3
4
5
6
7
8
9

Именно поэтому команда split и не будет создавать такие файлы, а грязно выругается: split: Исчерпаны суффиксы для выходных файлов… Так что галактико безопасносте…
Да, простите, все верно. Действительно, дело в том, что split создает «правильные» суффиксы (т. е. 00, 01, 02, ..., 10, 11, 12, ...), поэтому cat собирает в правильном порядке. В примере указаны ключи "-a 1 -d", что значит к имени добавлять цифровой суффикс единичной длины. В случае с "-a 2 -d" было бы *.part00, *.part01 и т. д.
Не нужно гадать. Нужно использовать команду sort :)
А что если на харде нет лишних 4 гигабайт, как напрямую на флешку писать?
$ cd /media/USBflash
$ split… /path/to/file/sample.iso sample.iso.part
Наверное, стоит попробовать вместо dd… Все-таки она более относится к Linux, хоть и ни хрена не подходит для данной ситуации…
Писать скрипт (например) или вручную запускать кучу раз dd:

dd if=big.iso of=/flash/big.iso.part bs=1000M count=1 skip=N

каждый раз увеличивая N от нуля до тех пор, пока dd не запишет пустой файл.
Ну а на другом компьютере каждый раз делать cat /flash/big.iso.part >> /dir/big.iso, а не тратить двойной объем и время на копирование всех частей и их собирание.
dd есть для Windows XP? Оказалось, что приведенный способ универсален для Linux/Mac OS/Windows (естественно, при наличии соответствующих программ в системе).
Не, способ неправильный, пользоваться им без исправлений можно только если у вас куча памяти.

Я забыл одну штуку про dd. dd сначала считывает весь блок заданного размера (в этом примере 1 гиг) в память, а потом пишет в выходной файл.

Вот так будет нормально:
dd if=big.iso of=/flash/big.iso.part bs=1M count=1000 skip=N000
то есть уменьшить блок в 1000 раз и скипать по тысяче.
варианты для сплита
1.
cd.
split -b1024M --prefix /destination/part longfile
2.
cd /destination
split -b1024M /source/longfile
У меня даже мысли не возникло, что вопрос Mr Floppy может быть настолько простым. Как-то сомневаюсь, что он действительно таким был.

Я вижу ситуацию совсем по-другому:
1) файл размером 10 гиг на жёстком диске
2) места на жёстком диске, допустим, 2 гига
3) флешка размером 1 гиг
4) компьютер с кучей места, куда нужно перенести файл из пункта 1.
Вот только сегодня собирал cat`ом разбитый в tcmd файл. Причём под WinXP. UnixUtils — сила!
Ну вот как-то незаметно появилось поколение юниксоидов, не читающих ман, и не понимающих фразу RTFM…
Чтобы прочитать man, нужно знать, какой man читать, и вообще догадываться о существовании такой программы.
4000M != 4Gb
а вообще спасибо, не знал про эту тулзу
Для split M и MB имеют разные значения:

$ 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 уже написали до меня. А вообще эта проблема уже уходит на второй план.
пардон
стандартный зип тома поддерживает?
тогда уж winrar
а закладываться что у пользователя стоит тотал или 7z не стоит
Я имел ввиду не настолько неискушенного, чтобы у него не стояло архиватора вообще. Таким наверное надо тащить богомерзкие самораспаковывающиеся архивы. А поддержка рара есть реже чем зип томов (по крайней мере на моем опыте, у вас мог быть другой). У меня на компьютере вообще рара не стоит. Честно говоря, я могу прочитать его лицензию, чтобы поставить, но я лучше в это время пойду побегать в парк или поучу язык. Ну или, на худой конец, почитаю (откоментирую) что нибудь такое же бесполезное, как чтение раровской лицензии, но гораздо более интересное.
ЗЫ а вообще Вы, наверное, правы — видимо пользование разбитых на тома зипов видимо тоже моветон.
чем выполняется поддержка томов в zip на Ваших компах?
я, честно говоря, кроме 7z и TC других прог не знаю
7z рекомендовал к пользованию всем своим коллегам

разбитие на тома — это правильно!

не люблю когда выкладывают файлик на несколько гиг
а потом при скачивании оказывается, что гдето чтото поломалось и давай по новой
а вот нарезанное по 100-500М — вполне приемлемый вариант

наши заказчики в свое время признавали только zip
последнее время успешно пользуют rar и 7z. особенно когда нужны многотомные архивы
Раньше был еще широко распространен WinZip.
Мне казалось винрар тоже хавает многотомные зип тома, хотя не пользовался это программой несколько лет.
>чем выполняется поддержка томов в zip на Ваших компах?
У меня file roller «из коробки» открывает.
Ан-нет, удалил консольный 7zip, теперь перестал.
Sign up to leave a comment.

Articles