1.103.3 Réaliser la gestion de base des fichiers

Poids : 3

Thème : Commandes GNU et Unix

Description

Le candidat devrait être capable d'utiliser des commandes de base de Linux pour gérer les fichiers et dossiers.

Savoir clé

Copier, déplacer et supprimer des fichiers et des dossiers individuellement
Copier plusieurs fichier et des dossiers récursivement
Supprimer plusieurs fichiers et des dossiers récursivement
Utiliser les caractères wildcard simples et avancés dans les commandes
Utiliser find pour trouver et agir sur des fichiers sur base de leur nom, du type, de leur taille ou des différentes dates

Mots clés

Documentation

Cet objectif est assez simple, il consiste à pouvoir réaliser la gestion de base des fichiers et dossiers sous Linux. Cela comprend la création la copie, le déplacement et la recherche de fichiers ou de dossiers.

Se déplacer dans le système de fichier

Pour commencer, il faut pouvoir se déplacer dans le système de fichier. La commande cd (pour "change directory") permet de se déplacer d'un répertoire à un autre. Pour changer de répertoire, il faut indiquer le chemin où on désire aller.

Les chemins vers des fichiers ou répertoires sont de deux types: absolu et relatif. Un chemin absolu est un chemin donné à partir de la racine du système de fichier, qui est /. Un chemin relatif est définit à partir du dossier courant.

Voici par exemple l'utilisation de cd pour aller dans le bureau de mon compte, à l'aide d'un chemin absolu:

$ cd /home/ikipou/Desktop

Voici la même commande mais en utilisant un chemin relatif. Le dossier courant est mon dossier personnel, c'est à dire /home/ikipou. Voyez aussi l'utilisation de la commande pwd pour afficher l'emplacement courant:

$ pwd
/home/ikipou
$ cd Desktop

Il existe un dossier particulier présent dans chaque dossier, c'est le dossier "..". Ce dossier permet d'accéder au dossier de niveau supérieur au dossier courant.

Voyons l'utilisation du dossier ".." en mettant en évidence le chemin courant grâce à pwd:

$ pwd
/home/ikipou/Desktop
$ cd ..
$ pwd
/home/ikipou
$ cd ../..
$ pwd
/

La hiérarchie du système de fichier de Linux est parfaitement standardisé, mais sont étude fait partie d'un autre objectif.

Trouver des fichiers

La commande fondamentale à connaitre est ls qui permet de lister les fichiers et dossiers présent à l'intérieur du dossier courant.

Voici par exemple comment lister les fichiers du dossier courant:

$ ls
2D_dynamics.xmi                     LAT
autosave.xmi                        lingua_words1711.sql

La commande ls permet de lister le contenu d'un dossier, mais il est souvent nécessaire de trouver un fichier dont l'emplacement est inconnu. Une commande utile dans ce cas est find qui permet de rechercher des fichiers.

La commande find permet de chercher des fichiers ou dossier en fonction de certaines leurs propriétés. Un exemple courant et de devoir retrouver un fichier par son nom, ce qui se fait avec l'option -name.

Voici par exemple la recherche du fichier xorg.conf dans le dossier /etc:

$ find /etc -name 'xorg.conf'
/etc/X11/xorg.conf

Créer des fichiers et dossier

La commande mkdir permet de créer des dossiers. Pour créer un dossier, il suffit de donner le nom de celui-ci. Voici par exemple comment créer un dossier nommé "Ubuntu".

$ mkdir Ubuntu

Une option rencontré régulièrement est l'option -p qui permet de créer les dossiers parents du dossier spécifiés dans le cas où ils n'existeraient pas. Voici un exemple pour créer un dossier nommé "Fedora" dans un dossier "RedHat" qui n'existe pas encore:

$ mkdir RedHat/Fedora
mkdir: cannot create directory `RedHat/Fedora': No such file or directory
$ mkdir -p RedHat/Fedora

Pour créer un fichier, on peut utiliser la commande touch. Cet commande permet de créer un fichier vide avec le nom qui est fournit. Si un fichier existe déjà pour le nom donné, la date de modification est mise à jour à la date courante mais le fichier n'est pas effacé.

Voici un exemple d'utilisation de touch pour créer un fichier nommé Suse.cpp:

$ touch Suse.cpp

Copier, déplacer et renommer des fichiers

La commande cp permet de copier des fichiers et dossiers. Pour l'utiliser, il faut spécifier le chemin de la source et de la destination.

Voici par exemple comment copier le fichier Mandrake, en un fichier nommé Mandriva:

$ cp Mandrake Mandriva

Pour copier un dossier et son contenu, il faut ajouter l'option -R qui permet de copier récursivement le contenu d'un dossier.

Voici par exemple la copie du dossier BSD avec son contenu:

cp -R BSD Unix.BSD

Pour déplacer un fichier ou un dossier, il faut utiliser la commande mv. Voici par exemple commment déplacer le fichier JBoss dans le dossier RedHat:

$ mv jBoss RedHat/

La commande mv permet aussi de renommer les fichiers ou dossier. Il suffit en effet de donner le nouveau nom comme chemin de destination. Voici par exemple comment renommer le fichier Debian en Debian.etch:

$ mv Debian Debian.etch

Supprimer fichiers et dossiers

Finalement, il faut pouvoir supprimer les fichiers et dossiers.

La commande rmdir permet de supprimer un dossier lorsqu'il est vide. Voici par exemple la suppression du dossier Gentoo et l'erreur obtenue lorsque l'on veut supprimer le dossier RedHat qui n'est pas vide:

$ rmdir Gentoo
$ rmdir RedHat
rmdir: RedHat: Directory not empty

La commande rm permet quand à elle de supprimer des fichiers. Voici par exemple son utilisation pour supprimer le fichier Suse.cpp:

$ rm Suse.cpp

La commande rm peut aussi être utilisée pour supprimer des dossiers non vide. Pour se faire, on utilise l'option -R qui supprime récursivement le contenu d'un dossier. Voici par exemple l'utilisation de rm -R pour la suppression du dossier RedHat:

$ rm -Rf RedHat

Retour aux objectifs