Что не так с этой командой `zip` для создания многосегментного архива?

После нескольких дней тестирования и опроса вокруг, это кажется самой простой реализацией. Это можно было бы сделать с глобальным состоянием, которое читает Awesome WM, однако, чтобы сохранить предсказуемость и простоту реализации, я сохраняю это.

~/.bashrc

alias cd='source ~/.cd_extend'

~/.cd_extend

command cd "$1"
pwd > ~/.terminal_directory

После этого я могу открыть терминал, который считывает из .terminal_directory файла и открывает новую оболочку gnome с заданным рабочим каталогом.

open_terminal.sh

#!/bin/bash

DIR=$(cat ~/.terminal_directory)
gnome-terminal --working-directory="$DIR"

awesomewm rc.lua

terminal   = "~/.dotfiles/open_terminal.sh
awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end)
2
19.09.2017, 18:30
1 ответ

Это известная проблема вzip:не удается рекомбинировать архивы, разделенные на кратные размеры внутреннего буфера (16 КБ ). А пока вам нужно разделить на другой размер... В вашем случае 20971519 (20МиБ минус один байт )должно работать нормально.

(Я попытался вручную рекомбинировать разделенный архив, но zip -FFищет компоненты архива и не может исправить объединенный файл.)

Оказывается, File Roller поддерживает разделенные архивы (без соблюдения формата сегментированного архива ), поэтому, если все ваши получатели используют этот (или предположительно,другие архиваторы, использующие libarchive ), вы можете разбить свой архив с помощью splitили аналогичного инструмента. Чтобы это работало, вам нужно сгенерировать файлы, используя суффиксы splitпо умолчанию, aa, abи т. д. :

.
split -b20m archive.zip split.z

Затем File Roller позволит вам открыть split.zaaи прозрачно извлечь весь архив (при условии, что все части явно присутствуют ).

1
27.01.2020, 22:18

Теги

Похожие вопросы