GNU/Linux

Publié le 13 avril, 2017 | par Loulou De Gueyo

0

Linux, quelques opérations basiques sur les dossiers

Nous aborderons dans ce tutoriel quelques commandes Linux qui permettent de manipuler les dossiers sous Linux.

cd: permet de changer de répertoire courant.
pwd: affiche le nom de ton répertoire courant.
basename: affiche la dernière partie du chemin d’accès à un fichier
dirname: affiche un chemin sans sa dernière partie en retirant le dernier élément du chemin.
mkdir: crée  un répertoire
rmdir: supprime un répertoire qui est vide
rm -r: supprime un répertoire et son contenu

La commande pwd affiche le chemin absolu du répertoire courant.

A tout moment vous pouvez savoir où vous vous trouvez exactement en utilisant cette commande.

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

Quand j’exécute cette commande j’ai le chemin absolu du répertoire fichiers dans lequel je me trouve présentement.
qui est /home/loulou/fichiers

La commande cd (change directory) permet de se déplacer d’un répertoire à un autre.

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

Je fais un pwd pour vous montrer d’abord dans qu’elle répertoire je suis présentement. Le résultat me dit que je suis dans /home/loulou/fichiers.

Ensuite je fais cd rep1 pour me déplacer dans rep1. Un deuxième pwd me confirme que je suis bien dans rep1.
Il est possible de spécifier en argument de cd un long chemin afin d’accéder à un répertoire en une seule commande.

Pour revenir en arrière d’un pas, je peux taper la commande cd .. . « .. » étant le répertoire parent de mon répertoire courant. Dans notre cas ici rep1 est notre répertoire courant et fichiers est son répertoire parent. Je retourne donc dans fichiers.

loulou@server:~/fichiers/rep1$ cd ..
loulou@server:~/fichiers$ pwd
/home/loulou/fichiers

Voyons maintenant comment se déplacer dans un répertoire distant.

loulou@server:~/fichiers$ ls
rep1  rep2
loulou@server:~/fichiers$ cd rep1
loulou@server:~/fichiers/rep1$ ls
rep3
loulou@server:~/fichiers/rep1$ cd rep3
loulou@server:~/fichiers/rep1/rep3$ ls
rep4
loulou@server:~/fichiers/rep1/rep3$ cd rep4

Ci-dessus, je veux me déplacer dans rep4 dont le chemin absolu est le suivant:/home/loulou/fichiers/rep1/rep3/rep4.
Je suppose que je ne connais pas ce chemin donc je procède par de petits pas pour me déplacer. Je découvre le répertoire avec ls ensuite j’accède à ce répertoire avec cd.
Mais si j’ai le chemin complet de rep4 en tête je pourrais accéder à rep4 en une seule commande.

Retournons d’abord dans le répertoire fichiers. Comment le faire ? Je propose deux solutions dans ce tutoriel.

loulou@server:~/fichiers/rep1$ cd rep3/rep4/
loulou@server:~/fichiers/rep1/rep3/rep4$ cd ../
loulou@server:~/fichiers/rep1/rep3$ cd ../
loulou@server:~/fichiers/rep1$ cd ../
loulou@server:~/fichiers$ 
loulou@server:~/fichiers$ pwd
/home/loulou/fichiers

J’ai fait ici trois pas en arrière. cd ../ , je me positionne dans rep3, cd ../ je me positionne dans rep1 et cd ../ je me positionne dans fichiers.
Ou en une seule commande :

loulou@server:~/fichiers/rep1/rep3/rep4$ cd ../../../
loulou@server:~/fichiers$ pwd
/home/loulou/fichiers

Voyons maintenant comment se positionner dans rep4 en une seule commande.
Puisque je suis déjà dans le dossier fichiers, alors je fais:

loulou@server:~/fichiers$ cd rep1/rep3/rep4/
loulou@server:~/fichiers/rep1/rep3/rep4$ pwd
/home/loulou/fichiers/rep1/rep3/rep4

Découvrons maintenant ce qui se passe lorsque cd est utilisé sans chemin en argument.

Lorsque cd est utilisé sans argument, elle nous ramène dans notre répertoire personnelle.

loulou@server:~/fichiers/rep1/rep3/rep4$ cd
loulou@server:~$ pwd
/home/loulou

La commande basename  renvoie la dernière partie du chemin d’accès à un fichier. Il supprime le chemin d’accès et laisse le nom du fichier (fichier réel ou dossier)

loulou@server:~/fichiers$ basename rep1/rep3/rep4/fichier.txt 
fichier.txt
loulou@server:~/fichiers$ basename rep1/rep3/rep4/
rep4

Si vous précisez une extension, alors il va retrancher l’extension du fichier dans le résultat.

loulou@server:~/fichiers$ basename rep1/rep3/rep4/fichier.txt .txt
fichier

La commande dirname affiche le chemin d’un fichier ou d’un dossier en retirant la dernière partie de ce chemin. Il renvoie donc le chemin du dossier dans lequel se trouve le fichier ou le dossier.

loulou@server:~/fichiers$ dirname rep1/rep3/rep4/fichier.txt
rep1/rep3/rep4
loulou@server:~/fichiers$ dirname rep1/rep3/rep4/
rep1/rep3

La commande mkdir crée un ou plusieurs répertoires

loulou@server:~/fichiers$ ls
rep1  rep2
loulou@server:~/fichiers$ mkdir doss1
loulou@server:~/fichiers$ ls
doss1  rep1  rep2
loulou@server:~/fichiers$ mkdir doss2 doss3 doss4
loulou@server:~/fichiers$ ls
doss1  doss2  doss3  doss4  rep1  rep2

Voyons quelques options utiles de mkdir
L’option -p
Il est possible de créer un dossier avec ses « répertoires parents » automatiquement en utilisant l’option -p.

loulou@server:~/fichiers$ ls
doss1  doss2  doss3  doss4   rep1  rep2
loulou@server:~/fichiers$ mkdir un/deux/trois
mkdir: impossible de créer le répertoire «un/deux/trois»: Aucun fichier ou dossier de ce type
loulou@server:~/fichiers$ mkdir -p un/deux/trois
loulou@server:~/fichiers$ ls
doss1  doss2  doss3  doss4    rep1  rep2  un
loulou@server:~/fichiers$ ls un
deux
loulou@server:~/fichiers$ ls un/deux/
trois

Nous essayons de créer dans un premier temps le dossier trois en spécifiant le chemin souhaité.
Le système nous ramène une erreur car le chemin un/deux n’existe pas. Ce qui veut dire que nous aurions du créer d’abord le dossier un ensuite créer le dossier deux à l’intérieur du dossier un et enfin créer le dossier trois à l’intérieur du dossier deux. Pour un petit chemin nous pouvons nous permettre d’utiliser cette
méthode. Mais si le chemin est long pour gagner en temps il est préférable d’utiliser l’option -p pour créer le dossier automatiquement avec ses « répertoires parents »

Avec l’option -m vous avez la possibilité de créer un dossier avec certains droits au lieu des droits  que le système lui attribut par défaut lorsqu’il est créé (droits contrôlés par le umask. Nous verrons le umask dans un autre article).

loulou@server:~/fichiers$ cd doss1/
loulou@server:~/fichiers/doss1$ ls
loulou@server:~/fichiers/doss1$ mkdir loulou
loulou@server:~/fichiers/doss1$ ls -l
total 4
drwxrwxr-x 2 loulou loulou 4096 avril 13 15:30 loulou
loulou@server:~/fichiers/doss1$ mkdir -m 0765 loulou1
loulou@server:~/fichiers/doss1$ ls
loulou  loulou1
loulou@server:~/fichiers/doss1$ ls -l
total 8
drwxrwxr-x 2 loulou loulou 4096 avril 13 15:30 loulou
drwxrw-r-x 2 loulou loulou 4096 avril 13 15:31 loulou1

Nous créons deux dossiers loulou et loulou1 dans le dossier doss1
Le dossier loulou créé avec mkdir sans option a des droits par défaut (775) que le système lui a attribué en utilisant le umask.
Cependant avec l’option -m nous avons donné les droits (765) au dossier loulou1 lors de sa création.

La dernière commande que nous verrons avant de terminer ce tutoriel est la commande rmdir.
Elle permet de supprimer un ou plusieurs répertoires vides. Pour supprimer un répertoire non vide il faut utiliser le commande rm -r.
rmdir -p quant à elle permet de supprimer un répertoire avec tous ses « répertoires parents« .
Si vous voulez supprimer des répertoires de manière interactive, utilisez rm -ri.
Pour supprimer des répertoires en ignorant les avertissements et les confirmations utilisez la commande rm -rf (attention
cette commande peut causer beaucoup de dégâts, il faut vraiment faire attention en l’utilisant).

loulou@server:~/fichiers$ rmdir doss1/loulou
loulou@server:~/fichiers$ ls doss1
loulou1
loulou@server:~/fichiers$ rmdir -p un/deux/trois/
loulou@server:~/fichiers$ ls
doss1  doss2  doss3  doss4  rep1  rep2

Ci-dessus, le dossier loulou contenu dans le dossier doss1 a été supprimé. De même en une seule commande en utilisant l’option -p, nous avons supprimé le dossier trois avec ses « répertoires parents » un/deux et un.

Tags: , , , , , ,




Laisser un commentaire

Vers le haut ↑