З огляду на конкретний випадок багатосегментних ZIP- файлів,
це додаткова відповідь до головної .
Як вже було сказано в головній відповіді, лише деякі засоби архівації підтримують розщеплення, а головний графічний інтерфейс, здається, не може створити багатосегментні архіви у zipформаті. Хоча можна використовувати альтернативні формати, а саме rarі 7z.
Крім того, лише деякі інструменти можуть витягувати з багатосегментних zip-файлів, наприклад, ті, що обговорювалися тут: про це дивіться кінцеву примітку до цієї відповіді.
Оскільки питання спеціально вирішує питання обробки архівації з контекстного меню файлового менеджера , я переглянув деякі команди, які могли б досягти поставленої мети навіть для zipфайлів: такі команди, якщо вони будуть успішними, можуть бути легко додані до файлового менеджера як записи контекстного меню.
Враховуючи цей zipінструмент, багатосегментні архіви можна створити безпосередньо за допомогою команди типу zip my_archive.zip -r <file> -s 20971519(детальніше під цим питанням ), але вони зовсім не корисні, оскільки не готові до вилучення (потрібна додаткова zip -s 0команда для створення великих 1- файл, який можна витягти - як описано тут ), і цього обмеження не уникнути. Надсилати такий багатосегментний архів тому, хто цього не знає, безглуздо.
Як вже було запропоновано в головній відповіді, інший спосіб полягає в тому, щоб скопіювати файл, а потім розділити однофайловий архівsplit (або hjsplitGUI). (Я протестував графічний інтерфейс, і виявив його надзвичайно повільним, тоді як для цілей контекстного меню 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...тощо; є splitможливість -dвикористовувати числові суфікси замість алфавіту, але це призводить до помилки (адже, мабуть, екстрактор очікує стандартного багатосегментного архіву ZIP, коли бачить числовий суфікс - як це запропонував у приватному чаті Стівен Кітт ;
rmзастосований до my_archive.zipфайлу залишить нам лише потрібний багатосегментний архів.
Примітка:
Для того, щоб отриманий мульти-zip-архів був вилучений, потрібен інструмент, який підтримує aaархіви segmentetd , як-от file-rollerу Linux та 7-Zip в Windows.