Considerando o caso específico de arquivos ZIP de vários segmentos,
esta é uma resposta complementar ao principal .
Como já foi dito na resposta principal, apenas algumas ferramentas de arquivamento suportam a divisão, e a GUI principal não parece capaz de criar arquivos multi-segmento no formato zip
. Formatos alternativos podem ser usados, como rar
e 7z
.
Além disso, apenas algumas ferramentas podem extrair arquivos zip de vários segmentos, como os discutidos aqui: veja a nota final desta resposta.
Como a questão aborda especificamente a questão de lidar com o arquivamento do menu de contexto do gerenciador de arquivos , examinei alguns comandos que poderiam atingir o propósito determinado mesmo para zip
files: tais comandos, se for bem sucedido, pode ser facilmente adicionado ao gerenciador de arquivos como entradas do menu de contexto.
Considerando a ferramenta zip
, os arquivamentos de vários segmentos podem ser criados diretamente com um comando como zip my_archive.zip -r <file> -s 20971519
(mais detalhes em essa questão ), mas elas não são úteis porque não estão prontas para serem extraídas (é necessário um comando zip -s 0
suplementar para criar um grande arquivo extraível com 1 arquivo - conforme descrito aqui ) e esta limitação não pode ser evitada. Enviar um arquivo de vários segmentos para alguém que não saiba disso é inútil.
Como já sugerido na resposta principal, outra maneira é compactar o arquivo e dividir o arquivo único com split
(ou a hjsplit
GUI). (Eu testei a GUI e achei extremamente lento, enquanto que para o propósito do menu de contexto a GUI não é necessária.)
A idéia é adicionar ao menu de contexto do gerenciador de arquivos uma entrada que, com apenas um clique,
- compactar arquivos selecionados como um único arquivo
zip
,
- divida o arquivo zip em partes do tamanho máximo especificado e
- remova-o para manter apenas o arquivo de vários arquivos.
Então, eu testei com o Thunar e uma ação personalizada com esses três comandos conectados por &&
:
zip -j my_archive.zip %F && split -b 20m my_archive.zip split.zip && rm my_archive.zip
(Isso deve ser aplicado a um ou mais arquivos selecionados, mas não a diretórios; para aplicar a diretórios, a opção zip -r
é necessária:
zip -r -j my_archive.zip %F && split -b 20m my_archive.zip split.zip && rm my_archive.zip
-
-j
representa uma opção de zip
para "lixo o caminho": ao contrário de um comando de terminal que contém o caminho completo do (s) arquivo (s) a ser arquivado, um comando de menu de contexto que usa %F
para arquivos selecionados adicionaria ao arquivo uma estrutura pasta-na-pasta, a menos que -j
fosse usado; (fonte: criar estrutura de diretório zip - ignore );
-
my_archive.zip
é o nome personalizado do arquivo ainda não dividido; o comando split
será aplicado a ele e, em seguida, o primeiro será removido com rm
-
%F
pode ser usado em uma ação personalizada do Thunar para compactar vários arquivos como zip
; Como alternativa, %f
deve ser usado para a seleção de apenas um arquivo;
-
-b 20m
representa o tamanho das partes de arquivo separadas criadas por split
conforme indicado aqui ;
-
split.zip
é uma especificação que não é necessária; é o nome personalizado do arquivo final de vários arquivos,
daria algo como split.zipaa, split.zipab, split.zipac...
, e sem ela a saída será nomeada x
seguida por aa
fragmento-sufixos: xaa, xab, xac...
, etc; existe uma split
opção -d
para usar sufixos numéricos em vez de alfabéticos, mas isso dá um erro (porque aparentemente o extrator espera um arquivo ZIP multi-segmento padrão quando vê um sufixo numérico - como sugerido em um chat privado por Stephen Kitt ;
-
rm
aplicado ao arquivo my_archive.zip
só nos deixará com o arquivo desejado de vários segmentos.
Nota:
Para que o multi-zip-archive resultante seja extraído, é necessária uma ferramenta que suporte aa
segmentetd archives , como file-roller
no Linux e 7-Zip no Windows.