Arborescence de fichiers

Objectifs de certification

Linux Essentials

RHCSA EX200

  • 1.Comprendre et utiliser les outils essentiels
    • 1.6. Archiver, compresser, décompacter et décompresser des fichiers, à l'aide de tar, star, gzip et bzip2
    • 1.8. Créer, supprimer, copier et déplacer des fichiers et des répertoires
    • 1.9. Créer des liens physiques et symboliques

LPIC 1

1. Filesystem Hierachy Standard (FHS)

1.1. La structure du système de fichier

  • Un système de fichiers est similaire à une arborescence, avec une racine qui se scinde en branches et sous-branches, soit en répertoires et sous-répertoires.
  • On commence par le tronc principal, la racine (root) : /. C'est un peu comme le C:\ sous DOS, sauf que C:\ est également le premier périphérique de stockage, alors que la racine peut correspondre à n'importe quel disque (partition) de votre système (point de montage).
  • La racine contient différents répertoires et sous-répertoires contenant eux-mêmes des fichiers.

1.2. La commande tree

La commande tree liste le contenu de répertoires sous forme d'arborescence.

yum install -y tree

Par exemple sous Centos 7, l'arborescence à partir de la racine :

$ tree -L 1 /
/
├── bin -> usr/bin
├── boot
├── dev
├── etc
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── lost+found
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var

20 directories, 0 files

1.2. Partition racine

  • Les répertoires suivants peuvent être montés sur d’autres partitions que la celle de la racine :
    • /boot
    • /home
    • /root
    • /tmp
    • /usr
    • /usr/local
    • /opt
    • /var
  • Les répertoires /dev, /bin, /sbin, /etc et/lib doivent être montés sur la partition racine.
  • De plus, la racine doit contenir un répertoire /proc vide. Il est utilisé par le noyau pour informer sur le statut du système d'exploitation (processus, statistiques d'utilisation de la mémoire, etc.).

1.3. Contenu du système de fichier

  • /bin et /sbin : contiennent les binaires nécessaires au démarrage et les commandes essentielles
  • /dev : fichiers périphériques ou fichiers spécifiques
  • /etc : fichiers et répertoires de configuration spécifiques à la machine
  • /lib et /lib64: bibliothèques partagées pour les binaires de /bin et /sbin. Contient également les modules du noyau.
  • /mnt ou /media : points de montage pour les systèmes de fichiers externes
  • /proc : informations du noyau. En lecture seule sauf pour /proc/sys.
  • /boot : contient le noyau Linux, le System.map (carte des symboles du noyau) et les chargeurs d'amorçage secondaires.
  • /home (facultatif) : répertoires utilisateurs, avec, en général, une copie du contenu de /etc/skel.
  • /root : répertoire de l'utilisateur root.
  • /sys : export d’information du noyau, à la manière de /proc
  • /tmp : fichiers temporaires.
  • /usr : User Specific Ressource. Contenu essentiellement statique et partageable. /usr est composé de sous-répertoires bin, sbin, lib et autres qui contiennent des programmes et bibliothèques de votre système non essentielles ni nécessaires au démarrage.
  • lost+found : est un dossier spécial de récupérer de données du système de fichiers.
$ tree -L 1 /usr
/usr
├── bin
├── etc
├── games
├── include
├── lib
├── lib64
├── libexec
├── local
├── sbin
├── share
├── src
└── tmp -> ../var/tmp

12 directories, 0 files
  • /usr/local ou /opt : programmes et bibliothèques supplémentaires. En général, c'est dans ces répertoires que l'on place les programmes qui ne font pas partie des paquets des distributions.
  • /var : données variables comme les spool ou les journaux. Les sous-répertoires peuvent être soit partageables (comme /var/spool/mail) soit non partageables (comme /var/log).
  • /var/www, /var/ftp ou /srv : pages web ou fichiers ftp anonymes.

1.4. Chemins relatifs et absolus

  • On peut accéder à un répertoire ou un fichier en donnant son chemin complet, qui commence à la racine (/), ou en donnant son chemin relatif partant du répertoire courant.
  • Chemin absolu :
    • indépendant du répertoire de travail de l'utilisateur
    • commence par /
  • Chemin relatif :
    • dépend de l'endroit où se trouve l'utilisateur
    • ne commence pas par /

1.5. Se déplacer dans le système de fichiers

Comme pour tout système de fichiers structuré, un certain nombre d'outils aident à parcourir le système. Les deux commandes suivantes sont des commandes internes du shell :

  • pwd : (Print Working Directory) affiche le répertoire actuel en chemin absolu
  • cd : la commande pour changer de répertoire (Change Directory)

1.6. Emplacements

  • L’emplacement courant est représenté par un point .
  • L’emplacement parent est représenté par deux points ..
  • Le répertoire utilisateur courant est représenté par le tild ~

1.7. Exercices

  • Aller dans le répertoire /etc/
  • Revenir dans le répertoire personnel Téléchargements
  • Aller dans /etc/default de manière relative
  • Revenir rapidement dans son répertoire personnel
  • Se placer dans le répertoire Téléchargements

2. Opérations sur les fichiers

2.1. Notion d’inode

  • Un inode est un numéro unique qui référence un ou plusieurs fichiers dans le système de fichier.
  • Ce numéro est l’élément de localisation du fichier sur le système de fichiers.
  • L’inode représente la réalité physique du fichier auquel un ou des noms (des emplacements sur le système de fichiers) correspondent.
  • http://fr.wikipedia.org/wiki/N%C5%93ud_d%27index

2.2. Commande ls

La commande ls liste les fichiers (par défaut le répertoire courant)

$ ls -lah /etc/
total 1,4M
drwxr-xr-x. 122 root root   8,0K 11 jan 19:00 .
drwxr-xr-x.  18 root root   4,0K 11 jan 19:00 ..
-rw-r--r--.   1 root root     16  8 déc 20:44 adjtime
-rw-r--r--.   1 root root   1,5K  7 jun  2013 aliases
-rw-r--r--.   1 root root    12K  8 déc 20:48 aliases.db
drwxr-xr-x.   2 root root   4,0K  8 déc 21:04 alternatives

Elle donne des attributs POSIX :

  1. type de fichier : - fichier, d répertoire, l lien symbolique
  2. droits :, -, r, w et x, propriétaire, groupe et autres.
  3. nombre liens physique
  4. propriétaire, ici root
  5. groupe propriétaire, ici root
  6. taille du fichier, ici en octets
  7. date de modification,
  8. nom du fichier.

2.3. Création d’un répertoire

Un répertoire ou un dossier est une liste de descriptions de fichiers. Du point de vue du système de fichiers, il est traité comme un fichier dont le contenu est la liste des fichiers référencés. Un répertoire a donc les mêmes types de propriétés qu'un fichier comme le nom, la taille, la date, les droits d'accès et les divers autres attributs. (Wikipedia))

On peut définir les droits avec l'option -m de mkdir. Une autre option couramment utilisée et utile de mkdir est -p qui crée les sous-répertoires quand c'est nécessaire.

Par exemple :

$ mkdir labs/ex1/script1

mkdir: impossible de créer le répertoire `labs/ex1/script1`: Aucun fichier ou répertoire de ce type
$ mkdir -p labs/ex1/script1
$ tree labs
labs
└── ex1
    └── script1

2 directories, 0 files

2.4. Suppression des répertoires

On utilise soit rmdir soit rm -r pour supprimer les répertoires. En tant que root, vous devrez peut-être à spécifier l'option -f pour forcer la suppression de tous les fichiers.

rmdir supprime un répertoire vide alors que rm -r supprime un répertoire et son contenu.

Cet exemple illustre la suppression de tous les fichiers et sous-répertoires et laisse le répertoire ex1 vide

$ rm -rf labs/ex1/*
$ tree labs
labs
└── ex1

1 directory, 0 files

Cet exemple illustre la suppression de tous les fichiers et sous-répertoires y compris ex1

$ rm -rf labs/ex1
$ tree labs
labs

supprime tous les fichiers et sous-répertoires y compris ex1

2.5. Commande touch

touch est une commande qui permet de créer et de modifier les fichiers.

Syntaxe :

  • touch {options} fichier(s)
  • Le fichier est créé s'il n'existait pas. Vous pouvez également changer la date d'accès avec l'option -a, la date de modification avec -m; l'option -r copie les attributs de date d'un autre fichier.

Exemples :

  • Créer deux nouveaux fichiers fichier1.txt et fichier2.txt :
$ touch labs/fichier1.txt labs/fichier2.txt
$ ls -i labs
69308775 fichier1.txt  69308776 fichier2.txt
  • Copier les attributs de date de /etc/hosts sur fichier2.txt :
$ ls -l /etc/hosts
-rw-r--r--. 1 root root 83 10 déc 12:11 /etc/hosts
$ touch labs/fichier2.txt -r /etc/hosts
$ ls -l labs/fichier2.txt
-rw-rw-r--. 1 francois francois 0 10 déc 12:11 labs/fichier2.txt

2.6. Commande cp

Syntaxe :

  • cp [options] fichier1 fichier2
  • cp [options] fichiers répertoire

Il est important de noter que cp fichier1 fichier2 crée une nouvelle copie de fichier1 et laisse fichier1 inchangé.

Illustration : fichier1.txt avec l'inode 69308775 est copié sur fichier3.txt, en dupliquant les données sur un nouveau bloc et en créant une nouvelle inode 69308777 pour fichier3.txt.

$ cp labs/fichier1.txt labs/fichier3.txt
$ ls -i labs
69308775 fichier1.txt  69308776 fichier2.txt  69308777 fichier3.txt

On ira lire attentivement la page man de la commande cp :

man cp

2.7. Copie récursive

On peut également copier plusieurs fichiers dans un répertoire, à partir d'une liste ou en utilisant des caractères génériques.

Exemples :

  • Pour copier tout le contenu de labs dans un dossier bak :
$ mkdir labs/rep1
$ cp -r labs bak
$ tree bak labs
bak
├── fichier1.txt
├── fichier2.txt
├── fichier3.txt
└── rep1
labs
├── fichier1.txt
├── fichier2.txt
├── fichier3.txt
└── rep1

2 directories, 6 files

$ ls bak
fichier1.txt  fichier2.txt  fichier3.txt  rep1

Notons que le dossier de destination bakn'existait pas et a été créé.

Si on recommence l'opération alors que le destination existe déjà c'est le dossier source lui-même qui est copié.

$ cp -r labs bak
$ ls bak
fichier1.txt  fichier2.txt  fichier3.txt  labs  rep1
$ tree bak
bak
├── fichier1.txt
├── fichier2.txt
├── fichier3.txt
├── labs
│   ├── fichier1.txt
│   ├── fichier2.txt
│   ├── fichier3.txt
│   └── rep1
└── rep1

3 directories, 6 files

2.8. Commande mv

Syntaxe :

mv [options] anciennom nouveaunom
mv [options] source destination
mv [options] source répertoire

La commande mv peut à la fois déplacer et renommer les fichiers et les répertoires.

  • Si anciennom est un fichier et nouveaunom un répertoire, le fichier anciennom est déplacé dans ce répertoire.
  • Si la source et la destination sont sur le même système de fichiers, alors le fichier n'est pas copié, mais les informations de l'inode sont mises à jour pour tenir compte du nouveau chemin.
  • Les options les plus courantes de mv sont -f pour forcer l'écrasement et -i pour demander confirmation à l'utilisateur.

2.9. Renommer et déplacer

Vérifier les valeurs inode de ces fichiers avec ls -i.

  • Renommer le répertoire bak en bak2
$ mv bak bak2
  • Déplacer le bak2 dans le répertoire labs
$ mv bak2 labs
  • renommer le répertoire bak2 en bak
$ mv labs/bak2 labs/bak

2.10. Liens physiques

  • Un lien physique est un nom supplémentaire pour un même inode. Ainsi, le nombre de références s'accroît de un à chaque nouveau lien physique créé.
  • Dans la liste suivante, notez que le nombre de références est de 2 et que les deux fichiers ont la même taille (ainsi que la même valeur inode, ce que vous pouvez vérifier avec ls -i). Dans les faits, ces deux fichiers sont parfaitement identiques.
  • Les liens physiques ne peuvent être créés que sur le même système de fichier, une même partition.
$ ln labs/fichier1.txt labs/fichier5.txt
$ ls -li labs
total 0
69308779 -rw-rw-r--. 2 francois francois 0 21 fév 07:04 fichier1.txt
69308780 -rw-rw-r--. 1 francois francois 0 21 fév 07:04 fichier2.txt
69308781 -rw-rw-r--. 1 francois francois 0 21 fév 07:04 fichier3.txt
69308779 -rw-rw-r--. 2 francois francois 0 21 fév 07:04 fichier5.txt
 3739518 drwxrwxr-x. 2 francois francois 6 21 fév 07:04 rep1

2.11. Liens symboliques

Un lien symbolique vers un fichier ou un répertoire crée un nouvel inode qui pointe vers le même bloc de données.

$ cd labs
$ ln -s fichier1.txt fichier4.txt
$ cd ..
$ ls -li labs
total 0
69308779 -rw-rw-r--. 2 francois francois  0 21 fév 07:04 fichier1.txt
69308780 -rw-rw-r--. 1 francois francois  0 21 fév 07:04 fichier2.txt
69308781 -rw-rw-r--. 1 francois francois  0 21 fév 07:04 fichier3.txt
69308774 lrwxrwxrwx. 1 francois francois 12 21 fév 07:21 fichier4.txt -> fichier1.txt
69308779 -rw-rw-r--. 2 francois francois  0 21 fév 07:04 fichier5.txt
 3739518 drwxrwxr-x. 2 francois francois  6 21 fév 07:04 rep1
  • Les liens symboliques peuvent pointer vers des fichiers ou répertoires présents sur un autre système de fichier.
$ echo $(date) > labs/fichier1.txt
$ cat labs/fichier4.txt
dim fév 21 07:22:01 CET 2017

2.12. Commande rm

La commande rm permet de supprimer un fichier du système de fichiers. La commande rm peut disposer d'alias selon les distributions. Enfin, cette commande est étudiée et améliorée dans la section Scripts Shell de l'ouvrage.

man rm

2.13. Copie par blocs

  • dd est une commande unix permettant de copier un fichier (avec ou sans conversion au passage) notamment sur des périphériques blocs tel que des disques durs ou des lecteurs CD-ROM ou inversément.
  • Contrairement à cp, la commande dd copie des portions de données brutes d'un périphérique. Par conséquent, dd préserve le système de fichier sous-jacent. cp se contente de traiter des données et les transfère d'un système de fichier à un autre.

2.14. Syntaxe de la commande dd

  • La syntaxe de dd est différente des autres commandes unix traditionnelles. dd utilise des options de la forme option=valeur au lieu des habituelles -o valeur ou --option=valeur.
  • Les principales options de dd sont les suivantes :
    • if=fichier_entree (Input File) : lit ce fichier en entrée. Cela peut être un fichier régulier comme un périphérique de type bloc. Par défaut, c'est l'entrée standard qui est utilisée (par exemple le clavier).
    • of=fichier_sortie (Output File) : écrit dans ce fichier en sortie.
    • bs=t_b (Block Size) : copie les données par blocs de t_b octets.
    • count=n_b : ne copie que n_b blocs.
    • skip=n_e : ignore les n_e premiers blocs du fichier d'entrée1 (Ne copie le fichier d'entrée qu'à partir du bloc de rang n_e+1.)
    • seek=n_s : ignore les n_s premiers blocs du fichier de sortie1 (Ne commence à écrire dans le fichier de sortie qu'à partir du bloc de rang n_s+1.)

2.15. Exemples dd

  • Créer un fichier rempli de bits aléatoires de 1 Mo
dd if=/dev/urandom bs=1024 count=1000 of=fichier.bin
  • Créer une clé bootable Centos 7 sur /dev/sdb
dd if=CentOS-7.0-1406-x86_64-DVD.iso of=/dev/sdb
  • Créer une SD Card Raspberry Pi
dd bs=4M if=~/2012-12-16-wheezy-raspbian.img of=/dev/sdb
  • Créer l’image d’un disque
dd if=/dev/sdb of=~/sdb.img
  • Copier un disque sur l’autre
dd if=/dev/sdb of=/dev/sdc conv=noerror,sync
  • Copier une partition
dd if=/dev/sdb1 of=~/sdb1.img

2.16. GNU Midnight Commander

  • Utilitaire console graphique :
yum install -y mc

3. Recherche de fichiers

man find
man xargs

3.1. Recherche de fichier avec find

  • Syntaxe :

      find <REPERTOIRE> <CRITERE> [-exec <COMMANDE> {} \;]
    
  • Le paramètre REPERTOIRE indique à find l’emplacement de démarrage de la recherche et CRITERE peut être, parmi beaucoup d'autres, le nom du fichier ou du répertoire que nous recherchons.

Exemples :

find /usr/share/doc -name "x*"
find / -user 1000
find / -user 1000 2> /dev/null
  • Les lignes correspondantes sont listées sur la sortie standard.

L'option -ls offre un sortie plus lisible :

find / -user 1000 -ls

On peut également lancer une commande sur cette sortie, comme supprimer le fichier ou changer le mode de permission, en utilisant l'option -exec de find. Par exemple, pour copier tous les fichiers appartenant à l'utilisateur 2015, à condition d'en avoir les droits :

find / -type f -user 2015 –exec cp -a {} ~/backup \;

Dans ce dernier exemple,

  • \; à la fin de la ligne termine la commande -exec
  • et {} remplace chaque ligne trouvée par la commande find.

Recherche avec find et xargs

  • On voit souvent en xargs le compagnon de find. En fait, xargs traite chaque ligne de la sortie standard comme paramètre pour une autre commande. On pourrait utiliser aussi xargs pour supprimer tous les fichiers appartenant à un utilisateur avec cette ligne de commande :
find / -type f -user 2015 | xargs cp -a ~/backup
  • Remarque : Certaines commandes comme rm ne savent pas traiter les paramètres trop longs. Il est parfois nécessaire de supprimer tous les fichiers d'un répertoire avec :
ls labs | xargs rm -f

Options courantes de find

  • Exemples d'options courantes :
find /home/francois -name "fichier*"
find labs -iname fichier1.txt
find labs -name "x*" -exec rm {} \;

3.2. Exercice : Trouver des fichiers SUID/SGID

  • Ici de la page manuel :
find / \( -perm -4000 -fprintf /root/suid.txt '%#m %u %p\n' \) , \
       \( -size +100M -fprintf /root/big.txt '%-10s %p\n' \)
cat /root/suid.txt
cat /root/big.txt
  • Trouver tous les fichiers SUID root :
find / -user root -perm -4000
  • Trouver tous les fichiers SGID root :
find / -group root -perm -2000
  • Trouver tous les fichiers SUID et SGID appartenant à n’importe qui :
find / -perm -4000 -o -perm -2000
  • Trouver tous les fichiers qui n’appartiennent à aucun utilisateur :
find / -nouser
  • Trouver tous les fichiers qui n’appartiennent à aucun groupe :
find / -nogroup
  • Trouver tous les liens symboliques et leur cibles.
find / -type l -ls

3.3. Recherche de fichiers avec locate

  • Syntaxe :
$ locate <CHAINE>
  • locate liste tous les fichiers et répertoires qui correspondent à l'expression.
$ locate fichier1
  • La recherche avec locate est très rapide. En fait, locate interroge la base de données /var/lib/?locate/?locate.db. Cette base de données est tenue à jour par une tâche quotidienne cron (cronjob) qui lance updatedb.
  • Le fichier /etc/updatedb.conf est lu par updatedb lorsqu'il est lancé manuellement pour déterminer les systèmes de fichiers et le répertoires dont il ne doit pas tenir compte (montages NFS et /tmp par exemple).
  • On peut lancer une mise-à-jour manuelle :
$ su
# updatedb
# exit
$ locate fichier1

3.4. Recherche de fichiers avec which

  • Syntaxe :
$ which chaîne
  • which retourne le chemin complet de la commande dont le nom est chaîne en parcourant les répertoires définis dans la variable PATH de l'utilisateur uniquement.

3.5. Recherche de fichiers avec whereis

  • Syntaxe :
$ whereis chaîne
  • Cette commande affiche le chemin absolu des sources, binaires ainsi que de les pages de manuel pour les fichiers correspondant à chaîne en se basant sur le PATH ainsi que sur des répertoires couramment utilisés.

4. Archivage et compression

Outils étudiés :

  • tar/untar
  • gzip/gunzip
  • bzip2/bunzip2
  • xz/unxz
  • zip/unzip
  • zcat
  • cpio/pax

Création de quelques fichiers à la volée :

$ for i in 0 1 2 3 4 5 6 7 8 9; do echo "fichier$i" > fichier$i; done
  • de manière plus élégante :
$ for ((i=0;i<10;i=i+1)); do echo "fichier$i" > fichier$i; done

4.1. Définitions

  • Compression : Réduire la taille d’un fichier par algorithme de compression.
  • Archivage : Placer un ensemble de fichiers et/ou de dossiers dans un seul fichier.
  • Compression sans archivage : gzip/gunzip, bzip2/bunzip2
  • Archivage avec ou sans compression : tar, star

4.2. Compression gzip/gunzip

  • gzip est basé sur l'algorithme Deflate (combinaison des algorithmes LZ77 et Huffman). C'est la méthode de compression la plus populaire sous GNU/Linux.

  • Compresser un fichier (le fichier est remplacé par son format compressé) :

$ gzip mon_fichier
$ ls -lh
  • Décompresser un fichier gzippé :
$ gunzip mon_fichier_compresse.gz
ls -lah
  • ou
$ gzip -d mon_fichier_compresse.gz
  • Compresser un fichier de façon optimisée :
$ gzip -9 mon_fichier
  • Compresser plusieurs fichiers en un :
$ gzip -c mon_fichier1 mon_fichier2 > mon_fichier_compresse.gz

4.3. Compression bzip2

  • bzip2 est une alternative à gzip, plus efficace mais moins rapide.

  • Compresser un fichier :

$ bzip2 mon_fichier
  • Décompresser un fichier bzippé :
$ bunzip2 mon_fichier_compresse.bz2

4.4. Commande tar

  • Tar (« tape archiver », en français « archiveur pour bande », son rôle à l'origine) est le programme d'archivage de fichiers le plus populaire sous GNU/Linux et les systèmes Unix. Il est généralement installé par défaut. On peut ajouter à une archive tar différents algorithmes de compression. On notera également que tar préserve les permissions et les propriétaires des fichiers, ainsi que les liens symboliques.
  • Les programmes cpio et pax peuvent aussi créer des archives en utilisant des redirections (< | >).
  • star fonctionne de la manière que taren supportant les ACLs.

tar : archivage sans compression

  • Pour archiver plusieurs fichiers ou un dossier, la commande est la même :
$ tar cvf mon_archive.tar fichier1 fichier2
$ tar cvf mon_archive.tar dossier1/
  • Pour extraire une archive tar, tapez :
$ tar xvf mon_archive.tar
  • Les principales options de tar sont les suivantes et peuvent se combiner à souhait :
    • c / x : construit / extrait l'archive ;
    • v : mode bavard ;
    • f : utilise le fichier donné en paramètre.

tar : archivage avec compression

  • Tar peut archiver en utilisant des algorithmes de compression, afin d'avoir des archives moins volumineuses. Par habitude, on suffixe les archives avec un . suivi d'une extension de compression.
  • Il suffit pour cela d'ajouter à la commande tar une option de compression :

    • z : compression Gunzip
    • j : compression Bzip2
  • Pour archiver et compresser un dossier avec Gunzip, tapez :

$ tar cvzf mon_archive.tar.gz dossier1/
  • Pour extraire une archive tar.gz, tapez :
$ tar xvzf mon_archive.tar.gz
  • De même pour Bzip2 :
$ tar cvjf mon_archive.tar.bz2 dossier1/
$ tar xvjf mon_archive.tar.bz2

star

Le logiciel star est l'équivalent de tar avec le support des ACLs.

# yum -y install star

Si l'option -aclest choisie les ACLs sont sauvegardées en mode création et restaurées en mode extraction.

4.5. XZ

XZ Utils (anciennement LZMA Utils) est un ensemble d'outils de compression en ligne de commande compressient LZMA et xz.

XZ Utilsest composé de deux composants principaux :

  • xz l'outil de compression similaire à gzip,
  • liblzma, une librairie logicielle comparable zlib

Différentes commande raccourcies existent comme :

  • lzma (pour xz --format=lzma)
  • unxz (pour xz --decompress; analogous to gunzip)
  • xzcat (pour unxz --stdout; analogous to zcat)

La compression par défaut est xz

Compresser une archive :

xz   my_archive.tar    # results in my_archive.tar.xz
lzma my_archive.tar    # results in my_archive.tar.lzma

Décompresser l'archive :

unxz    my_archive.tar.xz      # results in my_archive.tar
unlzma  my_archive.tar.lzma    # results in my_archive.tar

Créer une archive et la compresser :

tar -c --xz   -f my_archive.tar.xz   /some_directory    # results in my_archive.tar.xz
tar -c --lzma -f my_archive.tar.lzma /some_directory    # results in my_archive.tar.lzma

Décompresser une archive et extraire son contenu :

tar -x --xz   -f my_archive.tar.xz      # results in /some_directory
tar -x --lzma -f my_archive.tar.lzma    # results in /some_directory

4.6. ZIP

  • ZIP est un vieux format d'archive, mais aussi celui d'une commande pour créer ce type d'archive.

  • On utilise alors les commandes zipet unzip.

Création ZIP

$ zip votre_archive.zip [liste des fichiers]
$ zip -r votre_archive.zip [dossier]
  • Afin de compresser plusieurs sous-dossiers séparément (bash) :
$ for f in *; do zip "$f.zip" "$f"/*; done
  • zip -e votre_archive.zip [liste des fichiers] chiffre le zip et demande un mot de passe.

Extraction unzip

unzip votre_archive.zip -d mon_repertoire
  • Extraction de plusieurs .zip d'un même dossier :
$ for f in *.zip ; do unzip "$f" ; done

4.7. Archives zip découpées

  • Quelques fois les archives zip sont découpées comme suit : archive.z01, archive.z02, …, archive.zip
  • Il faut rassembler les fichiers dans une seule archive, puis extraire cette dernière :
$ cat archive.z* > archive_globale.zip
$ unzip archive_globale.zip

4.8. Autres logiciels

La curiosité au vu des résultats des commandes :

apt-cache search backup || yum search backup

results matching ""

    No results matching ""