TAR(1) Commandes générales de FreeBSD
NOM
tar - Archivage sur bande, manipulation de fichiers "tar".
SYNOPSIS
tar [[-]options-groupées] [flags-style-gnu] [fichiers | -C répertoire] ...
DESCRIPTION
Tar est le diminutif de programme d'archivage sur bande (tape archiever), ainsi dénommé pour raison historique. Ce programme crée, ajoute des fichiers à ou extrait des fichiers d'une archive au format "tar", appelée fichier tar. Un fichier tar est souvent une bande magnétique mais peut aussi être une disquette ou un fichier normal. Le premier argument de la ligne de commande tar est habituellement un mot formé par le groupement des fonctions et modificateurs, éventuellement précédé d'un trait d'union. Ce mot peut être formé d'une seule lettre parmis A, c, d, r, t, u et x pour ajouter, créer, différencier, remplacer, afficher la table des matières, mettre à jour ou extraire (voir les descriptions ci-après). Ce mot peut aussi contenir d'autres modificateurs de fonctions décrits plus loin, dont certains demandent des arguments dans la ligne de commande, dans l'ordre où ils apparaissent dans le mot (voir les exemples). Les fonctions et modificateurs de fonctions peuvent aussi être spécifiés suivant les conventions GNU (précédés de deux traits d'union, une fonction ou modificateur par mot). Les arguments de la ligne de commande qui désignent les fichiers à ajouter, extraire ou lister de l'archive peuvent être donnés comme dans l'interpréteur de commandes en faisant correspondre les chaines.
Tar est le diminutif de programme d'archivage sur bande (tape archiever), ainsi dénommé pour raison historique. Ce programme crée, ajoute des fichiers à ou extrait des fichiers d'une archive au format "tar", appelée fichier tar. Un fichier tar est souvent une bande magnétique mais peut aussi être une disquette ou un fichier normal.
Le premier argument de la ligne de commande tar est habituellement un mot formé par le groupement des fonctions et modificateurs, éventuellement précédé d'un trait d'union. Ce mot peut être formé d'une seule lettre parmis A, c, d, r, t, u et x pour ajouter, créer, différencier, remplacer, afficher la table des matières, mettre à jour ou extraire (voir les descriptions ci-après). Ce mot peut aussi contenir d'autres modificateurs de fonctions décrits plus loin, dont certains demandent des arguments dans la ligne de commande, dans l'ordre où ils apparaissent dans le mot (voir les exemples). Les fonctions et modificateurs de fonctions peuvent aussi être spécifiés suivant les conventions GNU (précédés de deux traits d'union, une fonction ou modificateur par mot). Les arguments de la ligne de commande qui désignent les fichiers à ajouter, extraire ou lister de l'archive peuvent être donnés comme dans l'interpréteur de commandes en faisant correspondre les chaines.
FONCTIONS
Une et une seule des fonctions suivantes doit être spécifiée : -A --catenate --concatenate Ajoute le contenu du fichier donné, qui doit, lui-même, être une archive tar, à la fin de l'archive (effaçant l'ancien bloc fin-d-archive). L'effet obtenu est l'ajout des fichiers de l'archive donnée à la fin de la première archive et non l'ajout de l'archive comme élément de la première. Note : Cette option nécessite une archive réinscriptible et donc ne marche pas sur les bandes d'un quart de pouce. -c --create Crée une nouvelle archive (ou la vide si elle existe) et écrit les fichiers donnés dedans. -d --diff --compare Trouve les différences entre les fichiers de l'archive et leurs correspondants dans le système. --delete Efface de l'archive les fichiers donnés (ne marche pas sur les bandes d'un quart de pouce). -r --append Ajoute les fichiers donnés à la fin de l'archive (ne marche pas sur les bandes d'un quart de pouce). -t --list Liste le contenu d'une archive. Si des noms de fichiers sont donnés en arguments, seuls ces fichiers sont listés sinon, tous les fichiers sont listés. -u --update Ajoute les fichiers donnés à l'archive uniquement si leur date de dernière modification est plus récente que leurs correspondant (s'ils existent) de l'archive. Ne marche pas sur les bandes d'un quart de pouce. -x --extract --get Extrait les fichiers de l'archive. Le possesseur, date de modification et permissions sont remis si possible. Si aucun argument fichier n'est donné, tous sont extraits. Si le nom d'un fichier correspond au nom d'un répertoire sur la bande, ce dernier et son contenu sont extraits (ainsi que les sous-répertoires). Si l'archive contient plus d'une correspondance d'un même fichier, (voir la commande --append ci-dessus), la dernière extraite écrasera les précédentes.
Une et une seule des fonctions suivantes doit être spécifiée :
-A
--catenate
--concatenate
Ajoute le contenu du fichier donné, qui doit, lui-même, être une archive tar, à la fin de l'archive (effaçant l'ancien bloc fin-d-archive). L'effet obtenu est l'ajout des fichiers de l'archive donnée à la fin de la première archive et non l'ajout de l'archive comme élément de la première. Note : Cette option nécessite une archive réinscriptible et donc ne marche pas sur les bandes d'un quart de pouce.
-c
--create
Crée une nouvelle archive (ou la vide si elle existe) et écrit les fichiers donnés dedans.
-d
--diff
--compare
Trouve les différences entre les fichiers de l'archive et leurs correspondants dans le système.
--delete
Efface de l'archive les fichiers donnés (ne marche pas sur les bandes d'un quart de pouce).
-r
--append
Ajoute les fichiers donnés à la fin de l'archive (ne marche pas sur les bandes d'un quart de pouce).
-t
--list
Liste le contenu d'une archive. Si des noms de fichiers sont donnés en arguments, seuls ces fichiers sont listés sinon, tous les fichiers sont listés.
-u
--update
Ajoute les fichiers donnés à l'archive uniquement si leur date de dernière modification est plus récente que leurs correspondant (s'ils existent) de l'archive. Ne marche pas sur les bandes d'un quart de pouce.
-x
--extract
--get
Extrait les fichiers de l'archive. Le possesseur, date de modification et permissions sont remis si possible. Si aucun argument fichier n'est donné, tous sont extraits. Si le nom d'un fichier correspond au nom d'un répertoire sur la bande, ce dernier et son contenu sont extraits (ainsi que les sous-répertoires). Si l'archive contient plus d'une correspondance d'un même fichier, (voir la commande --append ci-dessus), la dernière extraite écrasera les précédentes.
OPTIONS
Les autres options de tar peuvent être combinées comme bon vous semble. Les options d'une lettre peuvent être groupées avec le mot de la commande. Les options verbeuses qui demandent des arguments sont directement suivies par ceux-ci. Les options d'une lettre demandent des lignes de commandes successives (voir les exemples plus loin). --help Affiche la liste et une brève description de toutes les commandes d'options de tar. --atime-preserve Restaure la date de modification des fichiers écrits dans l'archive (notez que cela change la date de l'inode !). -b --block-size nombre Détermine la taille du bloc à lire ou écrire en nombre*512 octets. -B --read-full-blocks Réassemble des petits blocs en un complet (pour passer dans les tubes (pipes) 4.2BSD). -C répertoire --directory répertoire Change de répertoire avant de traiter les arguments restant. --checkpoint Affiche le tampon lecture-écriture lors de la lecture ou de l'écriture de l'archive. -f [hôte:] fichier --file [hôte:] fichier Lit ou écrit le fichier spécifié (par défaut /dev/rsa0). Si un hôte est donné, tar utilisera rmt(8) pour lire ou écrire le fichier sur la machine distante. "-" peut être utilisé à la place du nom de fichier pour lire ou écrire à partir de l'entrée ou de la sortie standard. --force-local L'archive est locale même si elle contient les deux points ":". -F file --info-script file --new-volume-script file Exécute un script à la fin de chaque volume d'archivage (implique l'option -M). --fast-read Arrête après tout "non-wildcard" trouvé dans les fichiers cible de l'archive. -G --incremental Crée, liste, extrait les sauvegardes incrémentales à l'ancien format GNU. -g fichier --listed-incremental fichier Crée, liste, extrait les sauvegardes incrémentales au nouveau format GNU. -h --dereference N'écrit pas les liens symboliques mais les données des fichiers visés. -i --ignore-zeros Ignore les blocs de zéros dans l'archive (qui veulent souvent dire Fin-de-Fichier EOF). --ignore-failed-read Ne quitte pas avec le statut non-zéro en cas de fichiers illisibles. -k --keep-old-files Conserve les fichiers qui existent déja sur le disque, ne les écrase pas par ceux de l'archive. -K fichier --starting-file fichier Commence au fichier de l'archive. -l --one-file-system Reste sur le système de fichier local lors de la création d'une archive (ne passe pas les points de montage). -L nombre --tape-length nombre Change de cassette après avoir écrit nombre * 1024 octets. -m --modification-time N'extrait pas les date de dernière modification des fichiers. -M --multi-volume Crée, liste, extrait des archives multi-volume. -n --norecurse Ne va pas dans les sous-répertoires lors de la création. --volno-file fichier Fichier et numéro de volume avec lequel commencer. -N date --after-date date --newer date Ne prend que les fichiers dont la date de création est plus récente que date. --newer-mtime date Ne prend que les fichiers dont la date de dernière modification est plus récente que date. -o --old-archive --portability Ecrit l'archive au format V7 plutôt que POSIX. -O --to-stdout Extrait les fichiers sur la sortie standard. -p --same-permissions Extrait toutes les informations de protection. --preserve A le même effect que -p -s. -P --absolute-paths Ne retire pas le "/" débutant les noms de fichiers. -R --record-number Montre le numéro d'enregistrement dans l'archive avec chaque message. --remove-files Efface les fichiers après les avoir ajoutés à l'archive. -s --same-order --preserve-order La liste des noms de fichiers est triée de manière à correspondre à ceux de l'archive. --show-omitted-dirs Affiche les répertoires qui ont été omis lors du traitement de l'archive. -S --sparse Manipule les fichiers dispercés (sparse) de manière efficace. -T fichier --files-from fichier Prend les noms de fichiers à extraire ou créer à partir du fichier, un par ligne. --null Modifie le comportement de -T pour prendre en compte les noms terminés par null. Désactive -C. --totals Affiche le total des octets écrits avec --create. -v --verbose Liste les fichiers écrits dans l'archive avec --create ou extraits avec --extract. Liste aussi les protections avec --list. -V nom-de-volume --label nom-de-volume Crée l'archive avec le nom-de-volume donné. --version Affiche la version du programme tar. -w --interactive --confirmation Demande confirmation à chaque action. -W --verify Tente de vérifier l'archive une fois écrite. --exclude modèle Exclus les fichiers correspondant au modèle (ne les extrait pas, ne les ajoute pas ou ne les liste pas). -X fichier --exclude-from fichier Exclus les fichiers inscrits dans le fichier. -y --bzip2 --bunzip2 Filtre l'archive à travers bzip2(1). -Z --compress --uncompress Filtre l'archive à travers compress(1). -z --gzip --gunzip Filtre l'archive à travers gzip(1). --use-compress-program programme Filtre l'archive à travers le programme (qui doit accepter l'option -d pour décompresser). --block-compress Bloque la sortie des programmes de compression pour les bandes et les disquettes (sinon les écritures peuvent être de taille inattendues et rejetées par le pilote). -[0-7][lmh] Définit le périférique à bande et sa densité. --unlink Délie les fichiers avant de les créer.
Les autres options de tar peuvent être combinées comme bon vous semble. Les options d'une lettre peuvent être groupées avec le mot de la commande. Les options verbeuses qui demandent des arguments sont directement suivies par ceux-ci. Les options d'une lettre demandent des lignes de commandes successives (voir les exemples plus loin).
--help
Affiche la liste et une brève description de toutes les commandes d'options de tar.
--atime-preserve
Restaure la date de modification des fichiers écrits dans l'archive (notez que cela change la date de l'inode !).
-b
--block-size nombre
Détermine la taille du bloc à lire ou écrire en nombre*512 octets.
-B
--read-full-blocks
Réassemble des petits blocs en un complet (pour passer dans les tubes (pipes) 4.2BSD).
-C répertoire
--directory répertoire
Change de répertoire avant de traiter les arguments restant.
--checkpoint
Affiche le tampon lecture-écriture lors de la lecture ou de l'écriture de l'archive.
-f [hôte:] fichier
--file [hôte:] fichier
Lit ou écrit le fichier spécifié (par défaut /dev/rsa0). Si un hôte est donné, tar utilisera rmt(8) pour lire ou écrire le fichier sur la machine distante. "-" peut être utilisé à la place du nom de fichier pour lire ou écrire à partir de l'entrée ou de la sortie standard.
--force-local
L'archive est locale même si elle contient les deux points ":".
-F file
--info-script file
--new-volume-script file
Exécute un script à la fin de chaque volume d'archivage (implique l'option -M).
--fast-read
Arrête après tout "non-wildcard" trouvé dans les fichiers cible de l'archive.
-G
--incremental
Crée, liste, extrait les sauvegardes incrémentales à l'ancien format GNU.
-g fichier
--listed-incremental fichier
Crée, liste, extrait les sauvegardes incrémentales au nouveau format GNU.
-h
--dereference
N'écrit pas les liens symboliques mais les données des fichiers visés.
-i
--ignore-zeros
Ignore les blocs de zéros dans l'archive (qui veulent souvent dire Fin-de-Fichier EOF).
--ignore-failed-read
Ne quitte pas avec le statut non-zéro en cas de fichiers illisibles.
-k
--keep-old-files
Conserve les fichiers qui existent déja sur le disque, ne les écrase pas par ceux de l'archive.
-K fichier
--starting-file fichier
Commence au fichier de l'archive.
-l
--one-file-system
Reste sur le système de fichier local lors de la création d'une archive (ne passe pas les points de montage).
-L nombre
--tape-length nombre
Change de cassette après avoir écrit nombre * 1024 octets.
-m
--modification-time
N'extrait pas les date de dernière modification des fichiers.
-M
--multi-volume
Crée, liste, extrait des archives multi-volume.
-n
--norecurse
Ne va pas dans les sous-répertoires lors de la création.
--volno-file fichier
Fichier et numéro de volume avec lequel commencer.
-N date
--after-date date
--newer date
Ne prend que les fichiers dont la date de création est plus récente que date.
--newer-mtime date
Ne prend que les fichiers dont la date de dernière modification est plus récente que date.
-o
--old-archive
--portability
Ecrit l'archive au format V7 plutôt que POSIX.
-O
--to-stdout
Extrait les fichiers sur la sortie standard.
-p
--same-permissions
Extrait toutes les informations de protection.
--preserve
A le même effect que -p -s.
-P
--absolute-paths
Ne retire pas le "/" débutant les noms de fichiers.
-R
--record-number
Montre le numéro d'enregistrement dans l'archive avec chaque message.
--remove-files
Efface les fichiers après les avoir ajoutés à l'archive.
-s
--same-order
--preserve-order
La liste des noms de fichiers est triée de manière à correspondre à ceux de l'archive.
--show-omitted-dirs
Affiche les répertoires qui ont été omis lors du traitement de l'archive.
-S
--sparse
Manipule les fichiers dispercés (sparse) de manière efficace.
-T fichier
--files-from fichier
Prend les noms de fichiers à extraire ou créer à partir du fichier, un par ligne.
--null
Modifie le comportement de -T pour prendre en compte les noms terminés par null. Désactive -C.
--totals
Affiche le total des octets écrits avec --create.
-v
--verbose
Liste les fichiers écrits dans l'archive avec --create ou extraits avec --extract. Liste aussi les protections avec --list.
-V nom-de-volume
--label nom-de-volume
Crée l'archive avec le nom-de-volume donné.
--version
Affiche la version du programme tar.
-w
--interactive
--confirmation
Demande confirmation à chaque action.
-W
--verify
Tente de vérifier l'archive une fois écrite.
--exclude modèle
Exclus les fichiers correspondant au modèle (ne les extrait pas, ne les ajoute pas ou ne les liste pas).
-X fichier
--exclude-from fichier
Exclus les fichiers inscrits dans le fichier.
-y
--bzip2
--bunzip2
Filtre l'archive à travers bzip2(1).
-Z
--compress
--uncompress
Filtre l'archive à travers compress(1).
-z
--gzip
--gunzip
Filtre l'archive à travers gzip(1).
--use-compress-program programme
Filtre l'archive à travers le programme (qui doit accepter l'option -d pour décompresser).
--block-compress
Bloque la sortie des programmes de compression pour les bandes et les disquettes (sinon les écritures peuvent être de taille inattendues et rejetées par le pilote).
-[0-7][lmh]
Définit le périférique à bande et sa densité.
--unlink
Délie les fichiers avant de les créer.
EXEMPLES
Pour créer une archive sur le lecteur de bandes /dev/rsa0, avec une taille de 20 blocs, contenant les fichiers nommés "bertrand" et "arnaud", vous pouvez taper
tar cfb /dev/rsa0 20 bertrand arnaud
ou
tar --create --file /dev/rsa0 --block-size 20 bertrand arnaud
Notez que les flags -f et -b demandent tout deux des arguments qu'ils prennent, dans la ligne de commande, dans l'ordre où ils sont listés dans les options groupées (ici : cfb). Comme /dev/rsa0 est le périférique par défaut et 20 la taille par défaut, l'example ci-dessus aurait pu être simplement tapé :
Notez que les flags -f et -b demandent tout deux des arguments qu'ils prennent, dans la ligne de commande, dans l'ordre où ils sont listés dans les options groupées (ici : cfb).
Comme /dev/rsa0 est le périférique par défaut et 20 la taille par défaut, l'example ci-dessus aurait pu être simplement tapé :
tar c bertrand arnaud
Pour extraire tous les sources et entête C d'une archive nommée "sauvegarde.tar", tapez :
tar xf sauvegarde.tar '*.[ch]'
Notez que le modèle doit être entre guillemets pour éviter que l'interpréteur de commandes ne le traite et le change par les fichiers correspondant dans le répertoire courant (l'interpréteur n'a, bien sûr, pas accès aux fichiers de l'archive). Pour déplacer une arborescence, utilisez :
Notez que le modèle doit être entre guillemets pour éviter que l'interpréteur de commandes ne le traite et le change par les fichiers correspondant dans le répertoire courant (l'interpréteur n'a, bien sûr, pas accès aux fichiers de l'archive).
Pour déplacer une arborescence, utilisez :
tar -cf - -C origine . | tar xpf - -C destination
Pour compresser une archive sur disquette, avec gzip, utilisez une commande comme :
tar --block-compress -z -c -v -f /dev/rfd1a -b 36 tar0
Notez que vous ne pouvez pas combiner les flags et les --flags. Vous pouvez utiliser les lettres seules comme ci-dessus plutôt que de taper :
tar --block-compress --gzip --verbose --file /dev/rfd1a --block- size 20 tar/
La disquette ci-dessus peut être listée avec :
tar tvfbz /dev/rfd1a 36
Pour fusionner deux archives tar en une seule, utilisez :
tar Af archive1.tar archive2.tar
Cela ajoute les fichiers de archive2.tar à la fin de archive1.tar. Notez qu'on peut simplement utiliser :
cat archive2.tar >> archive1.tar
grâce à la Fin-de-Fichier (EOF) à la fin des archives tar. Pour archiver tous les fichiers du répertoire srcdir qui ont été modifiés après le 9 février 1997 à 13:15, utilisez :
grâce à la Fin-de-Fichier (EOF) à la fin des archives tar.
Pour archiver tous les fichiers du répertoire srcdir qui ont été modifiés après le 9 février 1997 à 13:15, utilisez :
tar -c -f sauvegarde.tar --newer-mtime '9 Feb 1997 13:15' srcdir/
La date peut aussi être tapée "02/09/97 13:15", "1997-02-09 13:15", "13:15 9 Feb 1997", "Feb 9 13:15 1997 ", "Feb. 9, 1997 1:15pm", "09-Feb", "3 weeks ago" ou "May first Sunday". Pour le fuseau horaire, utilisez par exemple "13:15 CEST" ou "13:15+200".
ENVIRONNEMENT
Le programme tar tient compte des variables d'environnement suivantes : POSIXLY_CORRECT Normalement, tar traite les flags qui apparaissent avec la liste des fichiers. Si cette variable est définie, tar considère le premier argument non-flag comme la fin du traitement de ceux-ci, comme spécifié par POSIX. SHELL En mode interractif, un sous-shell peut être demandé à l'invite. Ce sera "/bin/sh" si la variable SHELL n'est pas définie. TAPE Change le lecteur de bandes par défaut de tar (qui est toujours remplacé en cas d'option -f).
Le programme tar tient compte des variables d'environnement suivantes :
POSIXLY_CORRECT
Normalement, tar traite les flags qui apparaissent avec la liste des fichiers. Si cette variable est définie, tar considère le premier argument non-flag comme la fin du traitement de ceux-ci, comme spécifié par POSIX.
SHELL
En mode interractif, un sous-shell peut être demandé à l'invite. Ce sera "/bin/sh" si la variable SHELL n'est pas définie.
TAPE
Change le lecteur de bandes par défaut de tar (qui est toujours remplacé en cas d'option -f).
FICHIERS
/dev/rsa0 le lecteur de bandes par défaut.
VOIR AUSSI
bzip2(1), compress(1), gzip(1), pax(1), ft(8), rmt(8)
HISTORIQUE
Le format tar , datant de la sixième édition d'Unix, est riche en histoire. L'implémentation actuelle de tar est celle de GNU, écrite par John Gilmore pour le domaine public.
AUTEURS
Des milliers de personnes dont (comme c'est listé dans le fichier ChangeLog des sources) John Gilmore (auteur original de la version du domaine public), Jay Fenlason (premier auteur GNU) Joy Kendall, Jim Kingdon, David J. MacKenzie, Michael I Bushnell, Noah Friedman et les nombreux autres qui ont contribué aux corrections et ajouts. Les pages de manuel obtenues auprès de NetBSD 1.0. Guillain Seuillot pour la traduction française.
Des milliers de personnes dont (comme c'est listé dans le fichier ChangeLog des sources) John Gilmore (auteur original de la version du domaine public),
Jay Fenlason (premier auteur GNU)
Joy Kendall,
Jim Kingdon,
David J. MacKenzie,
Michael I Bushnell,
Noah Friedman et les nombreux autres qui ont contribué aux corrections et ajouts.
Les pages de manuel obtenues auprès de NetBSD 1.0.
Guillain Seuillot pour la traduction française.
BUGS
La fonction -C ne marche pas comme dans les versions historiques de tar et est certainement fourbe. La fonction -A devrait pouvoir unir un nombre quelconque d'archives tar mais ne le fait pas. Les blocs Fin-d'Archive restent en place pour la seconde et suivantes archives.
La fonction -C ne marche pas comme dans les versions historiques de tar et est certainement fourbe.
La fonction -A devrait pouvoir unir un nombre quelconque d'archives tar mais ne le fait pas. Les blocs Fin-d'Archive restent en place pour la seconde et suivantes archives.
FreeBSD 25 août 1997 Traduction française le 25 mars 2000