Сжатие и разделение файлов в проводнике
Если щелкнуть правой кнопкой мыши файл в Nautilus и выбрать "Сжать", появится диалоговое окно, в котором можно выбрать формат сжатия и имя файла. Если вы нажмете "Дополнительно", то есть настройки для разделения и сжатия файла, но он деактивирован / нечувствителен. Как и как мне активировать эти функции?
Изменить: В ответе ниже, было предложено, что это как-то связано с RAR. Но у меня это установлено, и у меня нет вариантов разделения.
5 ответов
Только некоторые инструменты архивирования поддерживают разбиение. Одним из них является RAR - пакет rar
(но это условно-бесплатная программа, и вам нужно купить ее через 40 дней - условно- бесплатная в репозиториях Ubuntu? (RAR)), а другая, например, 7zip - пакет p7zip-full
, Вам нужно установить один из них (я предлагаю 7zip, потому что это совершенно бесплатно).
Вы также можете создать архив сиглов, а затем разбить его на части, используя split
команда (или HJSplit для графического интерфейса).
Чтобы активировать опцию разделения, выберите.rar из раскрывающегося списка расширения файла.
Рассматривая конкретный случай многосегментных ZIP- файлов,
это дополнительный ответ к основному.
Как уже говорилось в основном ответе, только некоторые инструменты архивации поддерживают разбиение, а основной графический интерфейс пользователя не способен создавать многосегментные архивы в zip
формат. Альтернативные форматы могут быть использованы, а именно, а именно rar
а также 7z
,
Кроме того, только некоторые инструменты могут извлекать из многосегментных zip-файлов, таких как обсуждаемые здесь: об этом смотрите в конце этого ответа.
Поскольку этот вопрос конкретно касается проблемы обработки архивации из контекстного меню файлового менеджера, я рассмотрел некоторые команды, которые могли бы достичь данной цели даже для zip
Файлы: такие команды, в случае успеха, могут быть легко добавлены в файловый менеджер как пункты контекстного меню.
Принимая во внимание zip
инструмент, многосегментные архивы могут быть созданы непосредственно с помощью команды, как zip my_archive.zip -r <file> -s 20971519
(подробнее по этому вопросу), но они совсем не полезны, потому что они не готовы к извлечению (нужно дополнительное zip -s 0
Команда для создания большого 1-файлового извлекаемого архива - как описано здесь), и этого ограничения нельзя избежать. Отправлять такой многосегментный архив кому-то, кто этого не знает, бессмысленно.
Как уже предлагалось в основном ответе, другой способ - сжать файл, а затем разделить однофайловый архив с помощью split
(или hjsplit
GUI). (Я протестировал графический интерфейс и нашел его очень медленным, хотя для целей контекстного меню графический интерфейс не нужен.)
Идея состоит в том, чтобы добавить в контекстное меню файлового менеджера запись, которая одним щелчком мыши
- сжать выбранные файлы как один
zip
файл, - разбить zip-файл на части указанного максимального размера и
- удалите его, чтобы сохранить только многофайловый архив.
Итак, я проверил с Thunar и пользовательское действие с этими тремя командами, связанными &&
:
zip -j my_archive.zip %F && split -b 20m my_archive.zip split.zip && rm my_archive.zip
(Это должно применяться к одному или нескольким выбранным файлам, но не к каталогам; для применения к каталогам zip -r
опция необходима:
zip -r -j my_archive.zip %F && split -b 20m my_archive.zip split.zip && rm my_archive.zip
)
-j
обозначает вариант дляzip
"мусорный путь": в отличие от терминальной команды, содержащей полный путь к архивируемому файлу (файлам), команда контекстного меню, которая использует%F
для выбранных файлов добавит в архив структуру папок в папках, если только-j
используется; (источник: создать zip - игнорировать структуру каталогов);my_archive.zip
пользовательское имя еще не разделенного архива;split
к нему будет применена команда, а затем первая будет удалена сrm
%F
может использоваться в настраиваемом действии Thunar для сжатия нескольких файлов какzip
; в качестве альтернативы,%f
должен использоваться для выбора только одного файла;-b 20m
обозначает размер отдельных частей архива, созданныхsplit
как указано здесь;split.zip
это спецификация, которая не нужна; это пользовательское имя конечного многофайлового архива, это будет что-то вродеsplit.zipaa, split.zipab, split.zipac...
и без него выход будет названx
с последующимaa
фрагмент-суффиксы:xaa, xab, xac...
, так далее; E стьsplit
вариант-d
использовать числовые суффиксы вместо буквенных, но это дает ошибку (потому что, по-видимому, экстрактор ожидает стандартный многосегментный архив ZIP, когда видит числовой суффикс - как предложено в приватном чате Стивена Китта;rm
применяется кmy_archive.zip
Файл оставит нас только с желаемым многосегментным архивом.
Замечания:
Для того, чтобы получить получившийся мульти-zip-архив, инструмент, который поддерживает aa
нужны архивы segmentetd, вроде file-roller
в Linux и 7-Zip в Windows.
Попробуйте заменить rar на unrar-free или другое.
Это может быть сделано просто
sudo apt-get install rar unrar-free
Использование p7zip-full, как предложил Vojtech Trefny, работает, но не позволило мне выбрать rar в качестве метода сжатия. Ни один не сделал unrar. Тем не менее, установка пакета "rar" представляет эту опцию, и если вы откроете Advanced, все опции будут чувствительными.