Biorąc pod uwagę szczególny przypadek wielosegmentowych plików ZIP ,
jest to odpowiedź uzupełniająca do głównej .
Jak już stwierdzono w głównej odpowiedzi, tylko niektóre narzędzia do archiwizacji obsługują dzielenie, a główny GUI nie wydaje się być w stanie tworzyć archiwów wielosegmentowych w zipformacie. Można jednak użyć alternatywnych formatów, a mianowicie rari 7z.
Ponadto tylko niektóre narzędzia mogą wyodrębnić pliki zip z wielu segmentów, takie jak te omówione tutaj: na ten temat patrz uwaga końcowa do tej odpowiedzi.
Ponieważ pytanie dotyczy konkretnie problemu z archiwizacją z menu kontekstowego menedżera plików , przyjrzałem się niektórym poleceniom, które mogłyby osiągnąć określony cel nawet dla zipplików: takie polecenia, jeśli się powiedzie, można łatwo dodać do menedżera plików jako pozycje menu kontekstowego.
Biorąc pod uwagę zipnarzędzie, archiwa wielosegmentowe można tworzyć bezpośrednio za pomocą polecenia typu zip my_archive.zip -r <file> -s 20971519(więcej szczegółów w tym pytaniu ), ale nie są one w ogóle przydatne, ponieważ nie są gotowe do rozpakowania (potrzebne jest dodatkowe zip -s 0polecenie, aby utworzyć duże 1- plik archiwum do wyodrębnienia - jak opisano tutaj ) i tego ograniczenia nie można uniknąć. Wysłanie takiego wielosegmentowego archiwum do kogoś, kto nie wie, że to nie ma sensu.
Jak już zasugerowano w głównej odpowiedzi, innym sposobem jest skompresowanie pliku, a następnie podzielenie archiwum jednego pliku za pomocąsplit (lub hjsplitGUI). (Przetestowałem GUI i stwierdziłem, że jest on bardzo wolny, natomiast do celów menu kontekstowego GUI nie jest potrzebny).
Chodzi o to, aby dodać do menu kontekstowego menedżera plików pozycję, która wystarczy jednym kliknięciem
- kompresuj wybrane pliki jako pojedynczy
zipplik,
- podzielić plik zip na części o określonym maksymalnym rozmiarze i
- usuń go, aby zachować tylko archiwum z wieloma plikami.
Testowałem więc z Thunarem i niestandardową akcją z tymi trzema poleceniami połączonymi przez &&:
zip -j my_archive.zip %F && split -b 20m my_archive.zip split.zip && rm my_archive.zip
(Należy to zastosować do jednego lub więcej wybranych plików, ale nie do katalogów; aby zastosować do katalogów, zip -rpotrzebna jest opcja:
zip -r -j my_archive.zip %F && split -b 20m my_archive.zip split.zip && rm my_archive.zip
)
-joznacza opcję zip„śmieciowej ścieżki”: w przeciwieństwie do komendy terminalowej zawierającej pełną ścieżkę plików, które mają być zarchiwizowane, polecenie menu kontekstowego używane %Fdla wybranych plików dodałoby do archiwum folder-in -folder struktura, o ile nie -jjest używana; (źródło: twórz zip - ignoruj strukturę katalogów );
my_archive.zipto nazwa niestandardowa niepodzielonego jeszcze archiwum; splitpolecenie zostanie przyłożona do niego, a następnie były zostanie usuniętyrm
%Fmoże być użyty w niestandardowej akcji Thunar w celu skompresowania wielu plików jako zip; alternatywnie, %fnależy użyć do wyboru tylko jednego pliku;
-b 20moznacza rozmiar oddzielnych części archiwum utworzonych przez, splitjak wskazano tutaj ;
split.zipjest specyfikacją, która nie jest potrzebna; jest to niestandardowa nazwa ostatecznego archiwum wieloplikowego, dałaby coś takiego split.zipaa, split.zipab, split.zipac..., a bez niej dane wyjściowe zostaną nazwane xpo aasufiksach fragmentów: xaa, xab, xac...itd .; istnieje splitopcja -dużycia sufiksów numerycznych zamiast alfabetycznych, ale daje to błąd (ponieważ najwyraźniej ekstraktor oczekuje standardowego wielosegmentowego archiwum ZIP, gdy zobaczy sufiks numeryczny - jak sugeruje prywatny czat Stephen Kitt ;
rmzastosowane do my_archive.zippliku pozostawi nam tylko żądane archiwum wielosegmentowe.
Uwaga:
Aby wyodrębnić powstałe archiwum z wieloma plikami zip, potrzebne jest narzędzie obsługujące aaarchiwa segmentetd , tak jak file-rollerw systemie Linux i 7-Zip w systemie Windows.