Gerenciador de archive da linha de comandos / extractor

14

Eu continuo esquecendo todos os comandos de extração correspondentes para cada formato de compactação.

Então, eu estava pensando em escrever um script que simplesmente mapeia extensões de arquivo para o comando de extração apropriado. Mas eu acho que algo assim já existe, eu não consigo encontrá-lo.

Eu ficaria feliz com algo como file-roller, mas file-roller é uma ferramenta GUI.

    
por brillout 20.08.2011 / 18:52

5 respostas

10

Algumas sugestões:

unp

unp (disponível no software-center) é um pequeno módulo perl que descomprime uma grande variedade de arquivos na pasta atual. Use unp -s para os formatos de arquivo suportados

Por padrão, ele descompacta os arquivos na pasta atual.

rolo de arquivo

O

file-roller pode ser executado a partir da linha de comando. Use file-roller -h <archive name> para descompactar o arquivo.

    
por fossfreedom 20.08.2011 / 19:26
11

De aqui , coloque o seu .bashrc:

extract () {
   if [ -f  ] ; then
      case  in
         *.tar.bz2)   tar xjf       ;;
         *.tar.gz)   tar xzf       ;;
         *.bz2)      bunzip2       ;;
         *.rar)      rar x       ;;
         *.gz)      gunzip       ;;
         *.tar)      tar xf       ;;
         *.tbz2)      tar xjf       ;;
         *.tgz)      tar xzf       ;;
         *.zip)      unzip       ;;
         *.Z)      uncompress    ;;
         *)         echo "'' cannot be extracted via extract()" ;;
      esac
   else
      echo "'' is not a valid file"
   fi
} 
    
por frabjous 20.08.2011 / 19:04
4

O que ainda não foi mencionado é o swiss-army-knife dos utilitários de linha de comando: atool ; está disponível nos repositórios: clique em atool ou execute sudo apt-get install atool .

atool é, na verdade, um script que engloba várias funções, como aunpack, apack, als, acat, adiff e arepack . Provavelmente, o uso mais comum do programa é extrair arquivos usando o comando aunpack. Existem algumas opções interessantes e úteis, mas a maneira básica de extrair a maioria dos arquivos é apenas executar, por exemplo,

aunpack myarchive.tar

O suporte para tar, 7z, zip, jar, rar, ar, lha e muitos outros formatos de arquivo e suas variações são documentados inserindo man atool no terminal ou exibindo o manual do Ubuntu online .

Então, o mais útil é que se você tiver um arquivo tar, zip e gz na mesma pasta, tudo que você precisa fazer para extraí-los é executar

aunpack -e *

e todos os arquivos suportados serão descompactados com a estrutura de pastas retida. Se o nome da pasta resultante já existir, ela não será sobrescrita, mas receberá um nome exclusivo, como unpack-5645.

Ou se você quiser escolher apenas um tipo de arquivo e descompactar todos eles, use

aunpack -e *.zip

Se você precisar de arquivos descompactados diretamente em um diretório específico, com apenas a estrutura de diretórios da subpasta sendo mantida (se sair), digite, por exemplo,

aunpack -e Scripts11.zip -X /home/mike/Videos

Se já existir um arquivo com o mesmo nome, será solicitada uma ação para renomear ou sobrescrever, a menos que você tenha especificado a opção forçar ( -f ) no comando.

Como as notas de manpage, aunpack primeiro extrai

  

arquivos para um único          (temporário) e depois mov [es] o seu conteúdo de volta, se possível.          Isso também impede que arquivos locais sejam sobrescritos por engano.

Com as outras ferramentas, outras ações são possíveis, conforme mencionado pela página do manual :

  • apack cria arquivos a partir dos arquivos ou pasta especifica ou stdin
  • als lista arquivos dentro do arquivo especificado
  • acat permite extrair arquivos mortos para stdout
  • adiff permite comparar os dois arquivos especificados
  • arepack torna possível converter um formato de arquivo para outro, colocando o conteúdo do arquivo original em uma pasta temporária e, em seguida, reempacotando o novo.

Existem muito mais opções úteis para todos os utilitários, mas provavelmente o mais usado será o aunpack, já que isso facilita a extração de arquivos múltiplos e diferentes. É ótimo poder apenas emitir um comando e ser capaz de extrair vários formatos de arquivo diferentes sem ter que usar os vários comandos para tar, zip, etc.

Para um artigo muito recente que descreve como integrar as funções atool nas ações personalizadas do gerenciador de arquivos, como Thunar, consulte esta revista online .

    
por user76204 22.11.2012 / 00:00
3

Existe uma ferramenta chamada dtrx - faça a extração correta.

Instale-o nos repositórios do Ubuntu e execute dtrx somefile.someext . A ferramenta interativamente consultará o usuário sobre arquivos aninhados (arquivos zip de zip).

O dtrx é uma versão sofisticada do extrato de frabjous .

    
por Jan 20.08.2011 / 20:52
0

Com que tipo de formatos você precisa lidar? Uma maneira é escrever um script de shell, que verifica as extensões de seu argumento. Ou, se tudo o que você lida são variações em .tar. *, Simplesmente fazendo tar -xf irá lidar com a maioria dos automaticamente. (Eu, portanto, só lembro disso e unzip , que é suficiente para tudo que eu geralmente encontro.)

    
por Ben Kraft 20.08.2011 / 19:02