Gerenciador / extractor de arquivo de linha de comando

15

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 apenas mapeia extensões de arquivo para o comando de extração apropriado. Mas acho que algo assim já existe, simplesmente não consigo encontrá-lo.

Eu ficaria feliz com algo como o rolo de arquivo, mas o rolo de arquivo é uma ferramenta da GUI.

brillout
fonte

Respostas:

11

Algumas sugestões:

unp

O unp (disponível no centro de software) é um pequeno módulo perl que descompacta uma grande variedade de arquivos na pasta atual. Use unp -spara os formatos de arquivo suportados

Por padrão, descompacta arquivos na pasta atual.

rolo de arquivo

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

liberdade de expressão
fonte
11

A partir daqui , para colocar no seu .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
} 
frabjous
fonte
Adicione um exemplo de como usá-lo?
MiniGod
4
extrair file.zip
frabjous
4

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

atoolé na verdade um script que compreende 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 várias opções interessantes e úteis, mas a maneira básica de extrair a maioria dos arquivos é apenas para 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 entrando man atoolno terminal ou visualizando a página de manual do Ubuntu online .

Portanto, o mais útil é que, se você tiver um arquivo tar, zip e gz na mesma pasta, tudo que você precisa fazer para extrair todos eles é executar

aunpack -e *

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

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

aunpack -e *.zip

Se você precisar descompactar arquivos diretamente em um diretório específico, apenas a estrutura de diretórios da subpasta será mantida (se houver), digite, por exemplo,

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

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

Como observa a página de manual, o aunpack extrai primeiro

arquivos para um diretório exclusivo (temporário) e, em seguida, mova seu conteúdo de volta, se possível. Isso também impede que os arquivos locais sejam substituídos por engano.


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

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

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

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

Comunidade
fonte
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 consultará interativamente o usuário sobre arquivos aninhados (zip de arquivos zip).

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

Jan
fonte
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 com variações é .tar. *, Simplesmente o procedimento tar -xfé feito com a maioria delas automaticamente. (Portanto, lembro-me disso e unzipbasta para tudo o que costumo encontrar.)

Ben Kraft
fonte