Existe algum programa para fornecer uma interface consistente entre vários tipos de arquivo?

13

No momento, se eu fizer o download de um arquivo compactado, poderá ser um arquivo .tar.gz, um arquivo tar.bz2, um arquivo .zip ou um arquivo .gz. E cada vez que faço isso, tenho que lembrar quais são as opções de linha de comando para esse programa.

Existe algum programa CLI onde eu possa simplesmente ir:

descompressão em algum arquivo. ??

e vamos descobrir em que formato o arquivo está? (nome excessivamente longo usado para evitar conflitos com qualquer programa real)

Macha
fonte
Não consegui encontrar ou criar tags como archive, compressionetc. Alguém poderia adicionar a correta?
Macha
@Tshepang: Fixed.
Macha

Respostas:

11

Você pode usar o p7zip . Ele identifica automaticamente o tipo de arquivo e o descompacta.

O p7zip é a versão em linha de comando do 7-Zip para Unix / Linux, criada por um desenvolvedor independente.

7z e <file_name>

Hemant
fonte
5

Encontrei este pequeno trecho há um tempo e uso-o desde então. Eu apenas o tenho no meu arquivo .bashrc

extract () {
if [ -f $1 ] ; then
    case $1 in
        *.tar.bz2)  tar xjf $1      ;;
        *.tar.gz)   tar xzf $1      ;;
        *.bz2)      bunzip2 $1      ;;
        *.rar)      rar x $1        ;;
        *.gz)       gunzip $1       ;;
        *.tar)      tar xf $1       ;;
        *.tbz2)     tar xjf $1      ;;
        *.tgz)      tar xzf $1      ;;
        *.zip)      unzip $1        ;;
        *.Z)        uncompress $1   ;;
        *)          echo "'$1' cannot be extracted via extract()" ;;
    esac
else
    echo "'$1' is not a valid file"
fi
}
Dason
fonte
1
Isso é mais eficaz do que a resposta aceita, pois 7z e foo.tar.gzapenas o deixa com um foo.tararquivo.
Wilfred Hughes
2

No Debian / Ubuntu, há o unppacote, que é um script Perl que funciona como interface para muitos utilitários de arquivamento.

JanC
fonte
2

De outra pergunta : o atool , que também lida com vários tipos de arquivos e é mais poderoso do que unpporque lida com a listagem de conteúdos, encontrando diferenças entre arquivos, etc.

Thomas Themel
fonte
1

O tar GNU (e estrela) possui pelo menos alguns recursos de detecção automática de compactação:

tar xf foo.tar.gz
tar xf foo.tar.bz

apenas trabalhe.

maxschlepzig
fonte
Depende da versão do tar, que formatos ele pode detectar automaticamente, mas, além disso, funciona bem ... O IIRC staré realmente uma maneira mais padronizada, onde o tar do GNU é uma extensão não padrão.
Xenoterracide
A versão mais recente do tar GNU pode descompactar todos os arquivos compactados, criados com qualquer uma das opções de filtro de compressão (z, j, J, --lzma), detectando a compactação automaticamente.
Polemon
@xenoterracide: Bem, o autor de estrela criticou muito o GNU tar no seu estilo usual - esses escritos podem ser tendenciosos (ignorando pontos ruins sobre estrelas e pontos positivos sobre o tar GNU), provavelmente contêm algum FUD e estão desatualizados.
maxschlepzig
1

Eu acho que arka ferramenta de arquivamento do KDE pode ser executada sem uma GUI. Da página de arkmanual

ark --batch archive.tar.bz2

Extrairá archive.tar.bz2 para o diretório atual sem mostrar nenhuma GUI.

O suporte do Arks a vários formatos de arquivo depende de quais aplicativos você instalou (por exemplo, para rar, depende do unrar), mas não conheço nenhum formato que ele não possa manipular.

xenoterracida
fonte
1

Estou surpreso que ninguém tenha mencionado a ferramenta dtrx sugerida nesta resposta .

Parece ajustar o pedido a um tee.

HighCommander4
fonte
0

O Unarchiver suporta a extração de cerca de 50 formatos diferentes com uma interface consistente.

Por padrão, um diretório é criado se houver mais de um arquivo ou pasta de nível superior.

Veja o seu man -page .

A versão da linha de comando suporta Linux e está disponível aqui .

Tom Hale
fonte