web-dev-qa-db-fra.com

Conversion d'un type d'archive en un autre à l'aide de la CLI

Si un type d'archive particulier doit être converti dans un autre format (par exemple - tar.gz à Zip), vous pouvez ouvrir l'archive à l'aide de file-roller et aller à -

Archive -> Enregistrer sous -> (sélectionnez l'extension) -> Enregistrer

De plus, dans cette méthode, Autres options peut être utilisé pour définir un mot de passe pour le fichier Zip, ce qui n'est pas possible dans le cas de fichiers tar.gz utilisant file-roller .

Comment les étapes ci-dessus peuvent être effectuées en utilisant la ligne de commande?

5
Rohith Madhavan

Commandes de base du shell:

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

À ce stade, vous avez une copie du contenu de archive.tar.gz dans $ HOME/tempdir /

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

... créera une archive Zip à partir du contenu de tempdir /, puis supprimera les fichiers ajoutés. Je présume que c'est toujours le cas; use standard (weak) PKZip 2.0 encryption comme indiqué pour l'option -e - qui ne prend pas le mot de passe, mais le demande.

Assurez-vous/vérifiez que vous êtes toujours en tempdir /

 $ pwd 
 .../tempdir 

S'il n'y a rien d'autre que "/ tempdir" à la fin ci-dessus,
alors NE PAS continuer avec ce qui vient ensuite, ici:

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

Tout ce qui précède pourrait également être possible avec un tuyau, comme dans:

 $ tar -zxvf ./archive.tar.gz Zip -p mot de passe - ./archive.Zip 

... Je ne vois cependant aucune raison de l'essayer - en raison du cryptage --- (faible et des problèmes éventuels liés à la façon dont Zip traite les fichiers spéciaux, les liens, etc.

Si vous voulez un vrai cryptage, cherchez plutôt gnupg et les utilitaires associés.

man tar, man Zip, Zip --help, Zip -h2 | less, tar --help | less peut contenir des informations vitales pour ce qui précède, en particulier la conversion en pipeline que je n'ai pas essayée.

4
Hannu

Vous pouvez utiliser tar-to-Zip à cette fin. Tout ce que vous devez faire c'est:

Installez node.js avec nvm si vous ne l'avez pas.

Puis installez tar-to-Zip avec:

npm i tar-to-Zip -g

Et utilisez-le avec:

tar2Zip hello.tar.gz

Il montrera des pourcentages de progression de l'opération et créera le fichier hello.Zip dans le même répertoire.

Les tuyaux pourraient également être utilisés:

cat hello.tar.gz | tar2Zip > hello.Zip

Malheureusement, il n'y a aucun moyen de définir un mot de passe.

2
coderaiser