Compresser un dossier avec tar?

268

J'essaie de compresser un dossier ( /var/www/) à ~/www_backups/$time.tar$timeest la date actuelle.

C'est ce que j'ai

cd /var/www && sudo tar -czf ~/www_backups $time"

Je suis complètement perdu et cela fait des heures que je suis là. Je ne sais pas si -czfc'est correct. Je veux simplement copier tout le contenu /var/wwwdans un $time.tarfichier et je veux conserver les autorisations de fichier pour tous les fichiers. Quelqu'un peut m'aider?

qwerty
la source
vous avez besoin d'un "de l'autre côté de $time."
gauteh

Réponses:

373

Pour taret gzipun dossier, la syntaxe est la suivante:

tar czf name_of_archive_file.tar.gz name_of_directory_to_tar

Le -est optionnel. Si vous voulez tarle répertoire actuel, utilisez .pour le désigner.

Pour construire votre nom de fichier, utilisez l' dateutilitaire (consultez sa page de manuel pour connaître les options de format disponibles). Par exemple:

cd /var/www && sudo tar czf ~/www_backups/$(date +%Y%m%d-%H%M%S).tar.gz .

Cela aurait créé un fichier nommé quelque chose comme 20120902-185558.tar.gz.

Sous Linux, il est fort probable que votre tarsupporte également la compression BZip2 avec l' option jplutôt que l' zoption. Et éventuellement d'autres. Consultez la page de manuel de votre système local.

Tapis
la source
1
C'est parfait, merci. J'ai un petit problème cependant. Après avoir créé un fichier tar de / var / www, il est placé dans les répertoires / var / www du fichier tar. Voici le code que j'utilise maintenant sudo tar -czf ~/www_backups/$time.tar /var/www/"Imaginez que j'ai un fichier appelé test.txt dans / var / www. Après avoir fait une copie du fichier .tar, quand je l'extrais, il sera placé dans les répertoires / var / www. Cela a-t-il du sens? J'espère que c'est le cas, un peu difficile à expliquer. Je vais vérifier pour le support BZip2, merci pour la suggestion!
Qwerty le
1
C'est pourquoi vous commencez par cdaller dans le répertoire que vous voulez empaqueter, puis tar cf file.tar .- cette dernière .au lieu de spécifier le chemin complet, les chemins à l'intérieur de l'archive seront relatifs au répertoire en cours. Vous pouvez également utiliser l' -Coption pour tar (consultez la page de manuel).
Mat le
1
Oui, cela a fonctionné beaucoup mieux. Merci beaucoup, appréciez-le!
Qwerty le
3
@Qwertylicious -f(page de manuel)Read the archive from or write the archive to the specified file.The filename can be - for standard input or standard output.
Kolob Canyon
1
sudoétait dans la question, n'a pas changé ou la question que. Avoir le répertoire cible de la sauvegarde restreint à root n'est pas une mauvaise idée cependant.
Mat