Site de Jean-Michel RICHER

Maître de Conférences en Informatique à l'Université d'Angers

Ce site est en cours de reconstruction certains liens peuvent ne pas fonctionner ou certaines images peuvent ne pas s'afficher.


stacks
counter_0   Historique counter_1   Cours 1 counter_2   TP 1 counter_3   TP 2 counter_4   accès

1. TP 2 - Création de répertoires et fichiers

Ce TP n°2 s'intéresse à la création / suppression de répertoires ainsi que la création / suppression de fichiers.

1.1. Les répertoires

1.1.1. Création de répertoires

Pour créer un répertoire on utilise la commande mkdir pour MaKe DIRectory :

# création du répertoire 'projet' dans le home directory
dir$cd ~
~$mkdir projet
# ou alors
dir$mkdir ~/projet

Cette commande peut accepter plusieurs arguments qui seront des répertoires :

# création des sous-répertoires 'bin', 'src', 'obj' dans 'projet'
~$cd projet
projet$mkdir bin src obj
projet$tree
.
├── bin
├── obj
└── src

La commande mkdir admet un argument -p qui permet de créer des sous-répertoires:

# création des sous-répertoires 'build/bin' et 'build/obj' dans 'projet'
$mkdir -p build/bin build/obj
$tree

Exercice 1.1

  1. Dans votre répertoire principal, créez le sous-répertoire mon_projet'
  2. Dans ce répertoire créez l'arborescence suivante :
    
    ├── build
    │   ├── bin
    │   └── obj
    ├── src
    └── tmp
        └── results
            └── intel

1.1.2. Suppression de répertoires

Pour supprimer un répertoire on utilise la commande rmdir pour ReMove DIRectory.

Attention cependant, il faut que le répertoire soit vide pour que cela fonctionne. Le répertoire à supprimer ne doit donc contenir aucun fichier, aucun fichier caché et aucun sous-répertoire.

Exercice 1.2

  1. tentez de supprimer le répertoire tmp/results
  2. supprimez le répertoire tmp/results/intel et build/obj en une seule commande

1.2. Les fichiers

1.2.1. Création de fichiers

Il existe plusieurs façons de créer un fichier :

  • utilisation de la commande touch
  • utilisation de la commande echo
  • utilisation de la commande cat

1.2.1.a  La commande touch

La commande touch permet de modifier la date d'accès d'un fichier mais également de créer un fichier si celui-ci n'existe pas.

# création du fichier README
projet$date
mer. 05 juil. 2023 15:26:10 CEST
projet$touch README
# vérifiez la date et l'heure de création du fichier README
projet$ls -al
-rw-rw-r-- 1 richer richer    0 juil.  5 15:26 README

1.2.1.b  La commande echo avec redirection

La commande echo permet d'afficher un message mais sa sortie peut être redirigée afin de créer un fichier

# création du fichier file.txt
projet$echo "mon fichier" >file.txt
# ajout d'une ligne à la fin du fichier file.txt
projet$echo "une autre ligne" >>file.txt

1.2.1.c  La commande echo avec redirection

La commande cat qui affiche le contenu d'un fichier texte peut également être redirigée afin de créer un fichier. Dans ce cas tout le texte saisi au clavier sera stocké dans le fichier jusqu'à ce qu'on utilise la combinaison de touches Ctrl + D.

# création du fichier resume.txt
projet$cat >resume.txt
Il était une fois un lapin rapide et prétentieux qui 
pensait battre une tortue à la course
Ctrl + D
projet$cat resume.txt
Il était une fois un lapin rapide et prétentieux qui 
pensait battre une tortue à la course

Exercice 1.3

  1. créez le fichier el_camino.txt contenant le texte suivant :
    Après avoir été libéré par Walter White du repaire du gang de Jack où il était séquestré, Jesse Pinkman doit se réconcilier avec son passé pour pouvoir prétendre à un avenir plus radieux, alors qu'il se trouve traqué par les forces de l'ordre.
  2. ajoutez la ligne suivante à la fin du fichier :
    Vince Gilligan, 2019, diffusé sur Netflix
  3. modifiez la date de création du fichier en utilisant touch avec l'option -d pour que le fichier apparaisse comme ayant été créé le 28 Décembre 2022. Attention, il faudra peut être saisir la date au format MM/JJ/AAAA.

1.2.2. Suppression de fichiers

Pour supprimer un ou plusieurs fichiers on utilise la commande rm pour ReMove.

# supprimer le fichier resume.txt
projet$rm resume.txt
# supprimer tous les fichiers d'extension .txt
projet$rm *.txt

Cette commande accepte deux options souvent utilisées :

  • -f pour force qui évite d'afficher que tel ou tel fichier n'existe pas
  • -r ou -R pour recursive qui supprime de manière récursive les fichiers et les répertoires

Pour rappel, la commande suivante ne doit pas être utilisée à moins de savoir exactement ce que l'on fait :

# supprimer tous les fichiers et sous-répertoires dans le répertoire 'projet'
projet$rm -rf *
# supprimer tous les fichiers et sous-répertoires dans le répertoire principal
# cela revient à perdre tout ce que vous avez
~$rm -rf *