GNU/Linux

Publié le 28 février, 2017 | par Loulou De Gueyo

2

Linux, quelques opérations basiques sur les fichiers

L’une des premières choses que vous aurez à faire sur Linux est la manipulation des fichiers : créer, copier, renommer, supprimer etc.

Ces tâches basiques paraissent anodines cependant elles sont très importantes. Il est communément dit que sous Linux, tout est fichiers ce qui est vrai. Si vous savez manipuler les fichiers, vous serez en mesure de configurer ou d’administrer très bien votre système.

Il existe plusieurs commandes permettant de manipuler les fichiers. Voyons en quelques-unes :

ls : Lister les fichiers d’un répertoire (au passage sachez que sous Linux les dossier sont considérés comme des fichiers).
cp : Copier un fichier.
mv : Renommer un fichier (« déplacer”) un fichier.
rm : Supprimer un fichier.

Si vous ne savez pas comment utiliser une commande Linux dans le terminal, nous vous conseillons de jeter un coup d’œil sur Introduction aux commandes Linux avant d’aller plus loin dans ce tutoriel.

La commande cat permet d’afficher le contenu d’un fichier. Nous allons l’utiliser pour voir le contenu de nos fichiers.

On appelle répertoire courant, ou répertoire de travail, le répertoire dans lequel on se trouve pendant que nous exécutons une commande. La commande pwd (print name of current/working directory) nous en donne le chemin. Dans la console suivante nous sommes dans un dossier nommé fichiers. Dans ce tutoriel, c’est dans ce dossier que nous allons travailler.

loulou@server:~/fichiers$ pwd
/home/loulou/fichiers

Le dossier fichiers se trouve dans un dossier loulou qui se trouve à son tour dans un dossier home. / est la racine de tous les fichiers et dossiers du système. Tapons la commande ls sans aucune option. Elle nous donne le contenu du dossier fichiers.

loulou@server:~/fichiers$ ls
dossier1  dossier2  dossier3  fichier1  fichier2  fichier3

Nous avons trois dossiers dossier1, dossier2, dossier3 et trois fichiers fichier1, fichier2 et fichier3 dans le dossier fichiers.

Voyons maintenant le contenu de chaque fichier avec la commande cat.

loulou@server:~/fichiers$ cat fichier1 
contenu du fichier1
loulou@server:~/fichiers$ cat fichier2
contenu du fichier2
loulou@server:~/fichiers$ cat fichier3
contenu du fichier3
loulou@server:~/fichiers$

Il est possible de lister le contenu d’un ou plusieurs répertoires en les passant en argument à la commande ls.

loulou@server:~/fichiers$ ls dossier1 dossier2 dossier3
dossier1:
fichier4

dossier2:
fichier5

dossier3:
fichier6

dossier1 contient un fichier nommé fichier4

dossier2 contient un fichier nommé fichier5

dossier3 contient un fichier nommé fichier6

Voyons maintenant quelques options de la commande ls.

Par défaut ls ne liste pas les fichiers ou les dossiers qui sont cachés. Lorsqu’elle est utilisée avec l’option -a (–all)  elle permet de le faire. En fait sous Linux, les fichiers ou dossiers commençant par un . (point) sont cachés.

loulou@imhotep:~/fichiers$ ls -a
.  ..  .caché  dossier1  dossier2  dossier3  fichier1  fichier2  fichier3

Nous avons trois nouveaux éléments qui apparaissent dans le résultat lorsque nous utilisons l’option -a de la commande ls, à savoir le dossier . qui représente votre dossier courant, le dossier .. qui représente le dossier parent de votre dossier courant; c’est-à-dire celui qui contient notre dossier fichiers ici dans notre cas. De plus, nous avons un fichier nommé .caché qui s’affiche maintenant lorsque nous utilisons l’option -a.

L’option -l de ls nous donne plus de détails sur les fichiers ou les dossiers.

loulou@server:~/fichiers$ ls -l
total 24
drwxrwxr-x 2 loulou loulou 4096 févr.  2 12:31 dossier1
drwxrwxr-x 2 loulou loulou 4096 févr.  2 12:31 dossier2
drwxrwxr-x 2 loulou loulou 4096 févr.  2 12:31 dossier3
-rw-rw-r-- 1 loulou loulou   20 févr.  2 12:33 fichier1
-rw-rw-r-- 1 loulou loulou   20 févr.  2 12:33 fichier2
-rw-rw-r-- 1 loulou loulou   20 févr.  2 12:33 fichier3

total 24 nous donne la taille total du contenu du dossier fichiers. Ici le dossier a un contenu de 24ko.

En lisant de gauche à droite, nous avons un premier caractère qui est soit (d) soit (). (d) veut dire que  la ligne correspond aux informations d’un dossier et () aux informations relatives à un fichier. On aurait pu avoir (l) comme premier caractère si le fichier en question était un lien symbolique (nous parlerons des liens dans un prochain article). (drwxrwxr-x ou -rw-rw-r– ) sont respectivement les droits de nos dossiers et de nos fichiers (à voir également dans un prochain article). Si nous considérons le premier dossier, le premier (loulou) est le nom du propriétaire du fichier ou du dossier et le deuxième (loulou) est le nom du groupe auquel appartient ce  propriétaire. (4096) est la taille du dossier et (févr.  2 12:31) est la date de dernière modification du dossier. Nous avons enfin (dossier1) qui est le nom du dossier.

La commande cp permet de copier un fichier ou un dossier.

loulou@server:~/fichiers$ cp fichier1 copieFichier1
loulou@server:~/fichiers$ ls
copieFichier1   dossier1  dossier2  dossier3  fichier1  fichier2  fichier3

Dans la commande ci-dessus, nous faisons une copie du fichier fichier1 et cette copie est copieFichier1. Lorsque nous listons le contenu du dossier fichiers après avoir exécuté la commande de copie nous constatons que la copie a été effectivement créée.

Voyons maintenant le contenu de cette copie avec la commande cat.

loulou@server:~/fichiers$ cat copieFichier1 
contenu du fichier1

Nous avons le même contenu qui est celui du fichier fichier1 puisque copieFichier1 est une copie du fichier fichier1.

L’option -r de la commande cp permet de faire la copie d’un répertoire de façon récursive. Donc si vous voulez copier un dossier, vous pouvez utiliser cette option. Ceci étant, faisons une copie du dossier dossier2. Mais avant voyons son contenu.

loulou@server:~/fichiers$ ls dossier2/
fichier5
loulou@server:~/fichiers$ cp dossier2 copieDossier2
cp: omission du répertoire 'dossier2'

Le dossier dossier2 contient un fichier nommé fichier5. Lorsque nous essayons ensuite de faire une copie de dossier2 sans option -r nous avons un message d’erreur qui nous dit que dossier2 est un répertoire. Ajoutons l’option -r à notre commande précédente.

loulou@server:~/fichiers$ cp -r dossier2 copieDossier2
loulou@server:~/fichiers$ ls
copieDossier2  dossier1  dossier3  fichier2
copieFichier1  dossier2  fichier1  fichier3
loulou@server:~/fichiers$ ls copieDossier2/
fichier5

Cette fois-ci, la commande s’exécute sans problème. Un premier ls nous montre que la copie copieDossier2 de dossier2 a été créée et un second ls sur copieDossier2 nous donne son contenu. Nous voyons très bien que copieDossier2 contient fichier5 comme dossier2. Ce qui est logique puisque le premier est une copie du second.

La commande mv permet de renommer ou de déplacer un fichier ou un répertoire. La syntaxe générale de la commande est la suivante : mv [option facultative ] source destination.

Si la destination est un répertoire (ce qui sous-entend qu’il existe déjà), mv va déplacer la source dans la destination.

Si la destination n’existe pas, alors mv va renommer la source en la destination. Exemples:

loulou@server:~/fichiers$ mv copieFichier1 dossier2
loulou@server:~/fichiers$ ls
copieDossier2  dossier1  dossier2  dossier3  fichier1  fichier2  fichier3
loulou@server:~/fichiers$ ls dossier2/
copieFichier1  fichier5

Ci-dessus nous déplaçons le fichier copieFichier1 dans le dossier dossier2. Étant donné que le dossier2 qui est la destination existe, copieFichier2 sera déplacée dans dossier2. Lorsque nous listons le contenu du dossier fichiers, nous constatons que le fichier copieFichier2 a disparu. En fait il a été déplacé dans dossier2. Listons enfin le contenu du dossier2. Le résultat nous montre que dossier2 contient désormais copieFichier2.

Renommons maintenant un fichier et un répertoire.

loulou@server:~/fichiers$ ls dossier1/
fichier4
loulou@server:~/fichiers$ mv dossier1 dossier1Renommé
loulou@server:~/fichiers$ ls
copieDossier2  dossier2  dossier3  dossier1Renommé  fichier1  fichier2  fichier3
loulou@server:~/fichiers$ ls dossier1Renommé
fichier4

Le dossier dossier1 contient le fichier fichier4.  Lorsque nous faisons mv dossier1 dossier1Renommé, étant donné que dossier1Renommé n’existe pas, mv va renommer dossier1 en dossier1Renommé. Un ls nous montre que le dossier1 a été bien renommé en dossier1Renommé.

Nous faisons un dernier ls sur le dossier1Renommé pour voir sont contenu. Il a le même contenu que le dossier1. Ce qui est logique puisqu’on a simplement changé le nom de dossier1 ; son contenu est resté intact.

Renommons maintenant un fichier:

loulou@server:~/fichiers$ mv fichier3 fichier3Renommé
loulou@server:~/fichiers$ ls
copieDossier2    dossier2  fichier1  fichier3Renommé
dossier1Renommé  dossier3  fichier2
loulou@server:~/fichiers$ cat fichier3Renommé 
contenu du fichier3

mv fichier3 fichier3Renommé renomme fichier3 en fichier3Renommé. Vous constaterez au passage que le fichier fichier3 n’existe plus. En fait il a été tout simplement renommé en fichier3Renommé. Un cat sur le fichier3Renommé nous donne son contenu. C’est bien le contenu du fichier3.

La commande rm permet de supprimer un répertoire ou un fichier.

loulou@server:~/fichiers$ rm fichier3Renommé 
loulou@server:~/fichiers$ ls
copieDossier2  dossier1Renommé  dossier2  dossier3  fichier1  fichier2

Ci-dessus nous avons supprimé fichier2Renommé. La commande ls nous montre que ce fichier a été effectivement supprimé. Il ne se trouve plus dans la liste de nos fichiers.

Pour supprimer un répertoire, il nous faut utiliser l’option -r.

loulou@server:~/fichiers$ rm dossier1Renommé
rm: impossible de supprimer 'dossier1Renommé': est un dossier
loulou@server:~/fichiers$ rm -r dossier1Renommé
loulou@server:~/fichiers$ ls
copieDossier2  dossier2  dossier3  fichier1  fichier2

Nous essayons de supprimer le répertoire dossier1Renommé sans option -r. Nous obtenons un message d’erreur qui nous dit que dossier1Renommé est un répertoire par conséquent pour le supprimer nous devons utiliser l’option -r.

Lorsque nous exécutons à nouveau la commande avec  cette fois-ci l’option -r, elle s’exécute correctement et supprime notre dossier. Lorsque nous faisons un ls, le résultat nous montre que le dossier dossier1Renommé n’existe plus dans la liste des dossiers. Il a été supprimé.

NB : Il est également possible de supprimer un dossier avec la commande rmdir à moins que celui-ci soit vide.

N’oubliez pas d’utiliser la commande man suivie de chaque commande que nous venons de voir pour explorer plus d’options.

A très bientôt dans un autre tutoriel sur les commandes Linux 🙂

Tags: , , , , , , , , , , ,




2 Commentaires de Linux, quelques opérations basiques sur les fichiers

  1. Adoudck a écrit:

    Merci pour le partage.
    Un i oublié dans le listing les contenus des dossiers après le second cadran

  2. Foxy a écrit:

    Cool

Laisser un commentaire

Vers le haut ↑