Comment stocker un grand dossier dans un seul fichier sans compression

11

Je veux prendre un dossier de 78 Go et le stocker dans un seul fichier (pour le télécharger dans un service cloud), comme si je le compressais dans une archive, mais je ne veux aucune compression (je n'ai pas beaucoup de CPU le temps disponible). Existe-t-il de toute façon que je peux accomplir cela, peut-être une commande de terminal que je ne connais pas?

cjmaria
la source
1
il y a une tarcommande sous linux. tar -cf long.file.tar folder
Costas
5
FYI: Il existe des programmes de compression rapides, certains qui seront plus rapides que la vitesse d'écriture de votre disque, et beaucoup plus rapides que votre réseau. L'utilisation de l'un d'eux accélérera réellement les choses, si les données sont compressibles. Par exemple, lzopest conçu pour la vitesse.
derobert

Réponses:

20

Utilisation tar: tar -cf my_big_folder.tar /my/big/folder

Restaurez l'archive avec tar -xf my_big_folder.tar -C /

-C passera au répertoire racine pour restaurer votre archive car l'archive créée ci-dessus contient des chemins absolus.

EDIT : En raison de la taille relativement grande de l'archive, il serait préférable de l'envoyer [directement] à son emplacement final, en utilisant SSH ou un point de montage de la ressource / du dossier cloud. Par exemple, comme le suggère Cole Johnson :

tar -cf /network/mount/point/my_big_folder.tar /my/big/folder

ou

tar -c /my/big/folder | ssh example.com "cat > my_big_folder.tar"

EDIT : Comme le suggère également Blacklight Shining , si vous voulez éviter les chemins absolus, vous pouvez passer au parent du grand dossier et à tarpartir de là:

tar -cf /network/mount/point/my_big_folder.tar \
    -C /my/big/folder/location the_big_folder

ou

tar -cC /my/big/folder/location the_big_folder | \
ssh example.com "cat > my_big_folder.tar"

Réflexions personnelles

L'inclusion de chemins relatifs ou absolus est une question de préférence personnelle.

Il existe des cas où les chemins absolus sont évidents, par exemple pour une restauration dans une situation de reprise après sinistre. Pour les projets ou collections locaux, il est courant d'archiver une arborescence de répertoires à partir du parent du dossier souhaité afin d'éviter d'encombrer le répertoire actuel, au cas où l'archive serait accidentellement décompressée sur place. Si big_folder se situe quelque part au fond d'une hiérarchie * NIX standard , il peut être judicieux de commencer à archiver le premier dossier non standard d'où big_folder s'écarte et son arborescence de répertoires à partir de là.

Enfin - pour devenir pédant ici - tarles membres de l'archive sont toujours relatifs car a) ils peuvent être restaurés dans n'importe quel répertoire et b) tar supprime le /début lors de la création d'une archive. Personnellement, j'ai tendance à toujours utiliser -C lors du déballage d'une archive.

Communauté
la source
Pour clarifier la modification: faites tar -cf /network/mount/point/folder.tar /folderplutôt que de goudronner sur l'ordinateur local, puis téléchargez si vous le pouvez
Cole Johnson
Exact. Plus je lis mon montage, plus je pense qu'il semble confus. Merci pour votre perspicacité.
1
Il est intéressant de noter la façon d' éviter rendre l'archive avec des chemins absolus: tar -cf $archive.tar -C $source_dir .. Si la machine de destination n'a pas le répertoire avec le même chemin que le répertoire source, vous aurez besoin de le faire. Assurez-vous simplement d'entrer -Cdans un nouveau répertoire lorsque vous extrayez ( mkdir $destination_dir && tar -xf $archive.tar -C $destination_dir); sinon le contenu de l'archive sera vidé dans le répertoire dans lequel vous vous trouvez.
Blacklight Shining
2

Alternative: cpio

(cd /my/big/folder && find . -depth -print0 | cpio -0o > myfolder.cpio)

Décompression dans le répertoire courant:

cpio -id < myfolder.cpio

Mises en garde:

  • Si utilisé à la find /my/big/folderplace de cd, l'archive contiendra des chemins complets et l'extraction essaiera de les suivre;
  • Les gros fichiers (> 2 Go) peuvent être un problème;
Vi.
la source
Cpio a tendance à être beaucoup plus lent que tar, cependant, s'il est utilisé avec la taille de bloc par défaut de 512. ( fixunix.com/sco/89900-cpio-performance-vs-tar-bit-mystery.html )
PSkocik