Converte de um tipo de arquivo para outro usando o CLI

5

Se um determinado tipo de arquivo tiver que ser convertido em outro formato (por exemplo, - tar.gz to zip ), pode-se abrir o arquivo usando file-roller e ir para -

Archive -> Save As -> (select the extension) -> Save

Além disso, nesse método, Outras opções pode ser usado para definir uma senha para o arquivo zip , o que não é possível no caso de tar.gz arquivos usando file-roller .

Como as etapas acima podem ser executadas usando a linha de comando?

    
por Rohith Madhavan 04.01.2015 / 14:51

2 respostas

4

Comandos básicos do shell:

$ cd $HOME
$ mkdir tempdir
$ cd tempdir
$ tar -zxvf ../archive.tar.gz 

Neste ponto, você tem uma cópia do conteúdo de archive.tar.gz em $ HOME / tempdir /

$ zip -rmp password ../archive.zip *

... criará um arquivo zip do conteúdo de tempdir / e removerá os arquivos adicionados. Eu presumo que ainda faça; use standard (weak) PKZip 2.0 encryption conforme indicado para a opção -e - que não usa a senha, mas solicita a senha.

Certifique-se de VERIFICAR / VERIFICAR que ainda está em tempdir /

$ pwd
.../tempdir

Se houver QUALQUER coisa diferente de "/ tempdir" no final acima,
então NÃO continue com o que vem a seguir, aqui:

$ rm -rf *  
$ cd ..
$ rmdir tempdir

Todos os itens acima podem ser possíveis com um pipe também, como em:

$ tar -zxvf ./archive.tar.gz - | zip -p password - ./archive.zip 

... No entanto, não vejo motivo para testá-lo - devido à criptografia fraca e possíveis problemas com o modo como o zip lida com arquivos especiais, links e outros.

Se você quiser criptografia real, consulte gnupg e os utilitários relacionados.

man tar , man zip , zip --help , zip -h2 | less , tar --help | less pode conter informações vitais para o acima, especialmente a conversão canalizada que eu não tentei.

    
por Hannu 04.01.2015 / 16:12
2

Você pode usar tar-to-zip para isso propósito. Tudo o que você precisa fazer é:

Instale o node.js com nvm se você não o tiver.

Em seguida, instale tar-to-zip com:

npm i tar-to-zip -g

E use-o com:

tar2zip hello.tar.gz

Ele mostrará as porcentagens do progresso da operação e criará o arquivo hello.zip no mesmo diretório.

Os tubos também podem ser usados:

cat hello.tar.gz | tar2zip > hello.zip

Infelizmente, não há como definir uma senha.

    
por coderaiser 05.11.2016 / 11:01