Com um número crescente de formatos de arquivamento / compactação, existe uma única ferramenta de linha de comando livre / de código aberto para governar todos eles? Talvez algo com um conjunto consistente / unificado de sinalizadores? (observe minha referência implícita e amigável ao alcatrão )
Certa vez, encontrei um conjunto de aliases que simplificavam bastante a tarefa de compactar / descompactar arquivos com ligações a tar
e outros utilitários, mas não consigo mais encontrar isso.
Atualização:
Como posso configurar algo como atool
não usar unzip
para extrair arquivos zip (que aparentemente não podem manipular arquivos maiores que 4 GB) e usá- gunzip
los?
$ aunpack large_file.zip
error: Zip file too big (greater than 4294959102 bytes)
Archive: large_file.zip
warning [large_file.zip]: 1491344848 extra bytes at beginning or within zipfile
(attempting to process anyway)
error [large_file.zip]: start of central directory not found;
zipfile corrupt.
(please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)
aunpack: unzip ...: non-zero return-code
tar
utilities
compression
Amelio Vazquez-Reina
fonte
fonte
unpack
diferenteatool
?7z
.Respostas:
Eu uso Atol . Faz o trabalho. Funciona com muitos, embora nem todos os formatos:
tar, gzip, bzip2, bzip, lzip, lzop, lzma, zip, rar, lha, arj, arco, p7zip etc.
Essas ferramentas de compactação ainda são necessárias, embora o atool seja simplesmente um front-end para elas.
Gosto particularmente do
als
comando que ele fornece, que lista o conteúdo de qualquer formato de arquivo suportado.O
atool
comando principal usa seus próprios sinalizadores para extrair arquivos (passando os sinalizadores apropriados para as ferramentas de extração subjacentes específicas).Ah, e está nos repositórios de algumas distribuições (o Fedora, no meu caso, embora eu me lembre, quando eu usei o Ubuntu, ele não estava em seus repositórios na época. E eu instalei a partir de um tarball.).
Atualização nos repositórios : atool está nos repositórios das seguintes distribuições (apenas versões atuais verificadas):
Tenho certeza de que existem outras ... plausivelmente, a maioria das distribuições modernas.
Resposta para a pergunta atualizada "Como posso configurar algo como o atool para não usar o descompactação para extrair arquivos zip ... e usar o gunzip" :
Edite o arquivo de configuração do atool
~/.atoolrc
e adicione a linha:com o caminho correto para o seu programa gunzip.
Veja a página de manual para a lista completa de variáveis possíveis que você pode colocar neste arquivo de configuração, das quais existem muitas . Se as opções de linha de comando necessárias para o gunzip forem diferentes de descompactar, talvez seja necessário modificar a própria fonte do atool (perl).
fonte
Aqui está uma pequena função de shell que cuida de vários tipos de arquivo.
Encontrei a versão original dessa função em algum lugar on-line e a modifiquei um pouco para extrair
ar
arquivos etar
arquivos compactados xz .fonte
bash
ezsh
, mas deve funcionarsh
também.O sistema de arquivos AVFS apresenta uma visão do sistema de arquivos onde todos os arquivos (por exemplo
/path/to/foo.zip
) estão acessíveis como um diretório (~/.avfs/path/to/foo/zip#
neste exemplo). O AVFS fornece acesso somente leitura aos formatos de arquivo mais comuns.O Avfs usa auxiliares externos que podem ser facilmente configurados editando arquivos no
/usr
(infelizmente não há como no avfs 1.0 usar arquivos no diretório/usr/local
ou em seu diretório pessoal, você precisa editar/usr
ou recompilar)./usr/share/avfs/extfs/ext-uzip
é o script para lidar com.zip
arquivos, altere-o se você não quiser usar/usr/bin/unzip
. Você pode se safar do uso do 7z: tente editar/usr/share/avfs/extfs/extfs.ini
e altere a linhaext-uzip
parau7z .zip
.fonte