Repack de arquivos 7z para arquivos zip no linux

2

Eu tenho um diretório com muitos arquivos .7z, eu preciso reempacotar cada um deles como arquivo zip, como posso fazer isso automaticamente no linux?

    
por res1 20.08.2016 / 01:17

2 respostas

2

Use o script a seguir e execute-o no diretório em que os arquivos .7z estão:

#!/bin/bash

TMPDIR=tempdir_$$

for x in 'ls *.7z'; do
    mkdir $TMPDIR
    cd $TMPDIR
    cp ../$x .
    p7zip -d $x
    zip -r ../${x%.7z}.zip *
    cd ..
    rm -rf $TMPDIR    
done

Isso deixará seus arquivos .7z onde eles estão e criará .zip arquivos com o mesmo nome.

O script copia os arquivos .7z para o diretório temporário antes de extraí-los, porque eles normalmente são excluídos após a descompactação dos arquivos.

Mantive o script o mais simples possível para que você possa descobrir como ele funciona.

O script só funcionará com .7z arquivos que não possuem espaços ou outros caracteres especiais em seu nome.

    
por 20.08.2016 / 08:11
3

Você também pode simplesmente usar a ferramenta arepack que faz parte do conjunto de ferramentas atool. Normalmente, é um yum install atool ou apt-get install atool . Quando isso estiver disponível, você pode simplesmente fazer isso:

$ arepack -e -F zip *.7z

Isso converterá todos os arquivos .7z como arquivos .zip. Você ainda precisará excluir os arquivos * .7z, mas isso pode ser feito da seguinte forma:

$ rm -f *.7z

Opções adicionais de pacotes

Options:
  -e, --each               execute command above for each file specified
  -F, --format=EXT         override archive format (see below)
  -O, --format-option=OPT  give specific options to the archiver
  -D, --subdir             always create subdirectory when extracting
  -f, --force              allow overwriting of local files
  -q, --quiet              decrease verbosity level by one
  -v, --verbose            increase verbosity level by one
  -V, --verbosity=LEVEL    specify verbosity (0, 1 or 2)
  -p, --page               send output through pager
  -0, --null               filenames from standard in are null-byte separated
  -E, --explain            explain what is being done by atool
  -S, --simulate           simulation mode - no filesystem changes are made
  -o, --option=KEY=VALUE   override a configuration option
      --config=FILE        load configuration defaults from file

Archive format (for --format) may be specified either as a
file extension ("tar.gz") or as "tar+gzip".
    
por 27.05.2018 / 18:48

Tags