Comment créer un fichier tar.7z à partir de la ligne de commande?

21

Je voudrais zipper mes devoirs de l'année dernière. Comment tarer et compresser tout le dossier à partir de la ligne de commande Ubuntu (je n'ai pas d'interface graphique).

alphanumerical74
la source

Réponses:

25

Utilisez la doublure suivante:

tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z
ortang
la source
Source potentielle: man 7z.
Wilf
9

Lisez man tar. CA offre:

     -a, --auto-compress
       use archive suffix to determine the compression program
     -j, --bzip2
     --lzip
     --lzma
     --lzop
     -z, --gzip, --gunzip --ungzip
     -Z, --compress, --uncompress

Ou, si aucune de ces options ne vous convient et que vous disposez d'un programme de compression qui lit stdin, vous pouvez:

tar cf- $HOME | my_compression_program >/tmp/compressed.output

Notez que j'écris la sortie ailleurs que $HOME(la sauvegarde dans un répertoire que vous sauvegardez entraîne une croissance des fichiers sans contrainte).

Ou, vous pourriez lire man 7z- on dirait que vous pourriez faire

dir="directory to save"
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on /tmp/archive.7z $dir 
waltinator
la source
7

Ce n'est pas une bonne idée de compresser directement avec 7z spécialement sur les systèmes unix / linux: 7z ne conserve pas les permissions et / ou les informations utilisateur / groupe . Donc: d'abord tar, puis compressez.

Comme indiqué sur la page wiki de 7zip à http://en.wikipedia.org/wiki/7z#Limitations :

Limites

Le format 7z ne stocke pas les autorisations de système de fichiers (telles que les autorisations de propriétaire / groupe UNIX ou les ACL NTFS), et peut donc être inapproprié à des fins de sauvegarde / d'archivage. Une solution de contournement sur les systèmes de type UNIX consiste à convertir les données en un bitstream tar avant de les compresser avec 7z.

Giuseppe Curto
la source
5

Je vous suggère d'utiliser:

tar cf - foldername | 7z a -si -m0=lzma2 -mx=3 foldername.tar.7z

pour une accélération spectaculaire.

Il a l'avantage d'utiliser lzma2 ( -m0=lzma2) (qui utilise le maximum de cœurs disponibles sur votre système et le préréglage "Fast compression" ( -mx=3), qui est fondamentalement assez rapide et assez bon. Notez que LZMA2 n'utilise pas seulement tous les cœurs en compression, mais aussi sur décompression.

vordhosbn
la source
1
Enfin, avec votre réponse, j'ai trouvé ce que je cherchais: la possibilité d'utiliser tous les processeurs sur la tâche.
Lonnie Best
0

Tu devrais utiliser tar -Jchf <Filename>.tar.xz <Files to compress>

Le -Jutilise l'algorithme de compression XZ, le même que 7zip

-ccrée un nouveau fichier -hpréserve les liens simples -fdéfinit le nom du fichier

Christian
la source