This shows you the differences between two versions of the page.
sde2:laboratoare:01_uso [2023/03/13 21:12] cristiana.andrei created |
sde2:laboratoare:01_uso [2023/03/14 00:48] (current) cristiana.andrei [Lab 01 - Travailler avec des fichiers] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Lab 02 - Travailler avec des fichiers ======= | + | ====== TP 01 - Travailler avec des fichiers ======= |
+ | |||
+ | ===== Assignment ===== | ||
+ | <note warning> | ||
+ | Vous devez **accepter** le assignment d'ici et travailler avec ce repository: [[https://classroom.github.com/a/gr7L1VbQ|Lab1]] | ||
+ | </note> | ||
===== Chemins dans la hiérarchie des fichiers ===== | ===== Chemins dans la hiérarchie des fichiers ===== | ||
Line 52: | Line 57: | ||
Il n'y a qu'un seul directeur, appelé student. | Il n'y a qu'un seul directeur, appelé student. | ||
- | |||
- | <note> | ||
- | Nous remarquons comment l'invite du terminal change : | ||
- | * dans le premier exemple étudiant@uso:/$ tree -F -L 1 / était dans le répertoire /. | ||
- | * dans le deuxième exemple étudiant@uso:/home$ tree -F -L 1 j'étais dans le répertoire /home. | ||
- | </note> | ||
- | |||
Ensuite, nous détaillons le concept de chemin. | Ensuite, nous détaillons le concept de chemin. | ||
Line 71: | Line 69: | ||
Dans la ligne de commande, nous affichons le chemin d'accès au répertoire dans lequel nous nous trouvons (chemin actuel) à l'aide de la commande **pwd** (print working directory) : | Dans la ligne de commande, nous affichons le chemin d'accès au répertoire dans lequel nous nous trouvons (chemin actuel) à l'aide de la commande **pwd** (print working directory) : | ||
- | code bash> | + | <code bash> |
student@uso:~$ pwd | student@uso:~$ pwd | ||
/home/student | /home/student | ||
Line 117: | Line 115: | ||
On remarque qu'au début des chemins il y a toujours le caractère '/' (le répertoire racine). | On remarque qu'au début des chemins il y a toujours le caractère '/' (le répertoire racine). | ||
+ | |||
+ | === Chemin relatif === | ||
+ | Par chemin relatif, nous entendons un fichier relatif au chemin courant. | ||
+ | |||
+ | <code bash> | ||
+ | student@uso:~$ ls -l uso.git/lab02/ | ||
+ | total 12 | ||
+ | drwxr-xr-x 5 student student 4096 aug 20 2018 anul_1 | ||
+ | drwxr-xr-x 2 student student 4096 aug 20 2018 anul_2 | ||
+ | drwxr-xr-x 4 student student 4096 aug 20 2018 demo | ||
+ | </code> | ||
+ | |||
+ | Dans l'exemple ci-dessus, nous sommes au chemin /home/student et avons descendu la hiérarchie des fichiers vers le répertoire uso.git, puis le répertoire lab02. | ||
+ | |||
+ | Nous obtenons le même résultat en utilisant le chemin absolu : | ||
+ | <code bash> | ||
+ | student@uso:~$ ls -l /home/student/uso.git/lab02/ | ||
+ | total 12 | ||
+ | drwxr-xr-x 5 student student 4096 aug 20 2018 anul_1 | ||
+ | drwxr-xr-x 2 student student 4096 aug 20 2018 anul_2 | ||
+ | drwxr-xr-x 4 student student 4096 aug 20 2018 demo | ||
+ | </code> | ||
+ | |||
+ | Le chemin /home/student/uso.git/lab02/ est valide quel que soit le chemin courant (où que nous soyons dans la hiérarchie des fichiers). | ||
+ | |||
+ | Dans ce cas, il est plus efficace d'utiliser le chemin relatif. Si nous pouvons passer plus rapidement du répertoire racine / au répertoire cible, le //chemin absolu// est plus utile. | ||
+ | |||
+ | === Entrée '..' du système de fichiers === | ||
+ | Nous référençons les mêmes fichiers (/usr/bin/touch et /etc/passwd) par chemin relatif, en utilisant ls : | ||
+ | <code bash> | ||
+ | student@uso:~$ pwd | ||
+ | /home/student | ||
+ | student@uso:~$ ls -l ../../usr/bin/touch | ||
+ | lrwxrwxrwx 1 root root 10 Mar 14 2015 ../../usr/bin/touch -> /bin/touch | ||
+ | student@uso:~$ ls -l ../../etc/passwd | ||
+ | -rw-r--r-- 1 root root 1768 Sep 9 14:07 ../../etc/passwd | ||
+ | </code> | ||
+ | |||
+ | On s'aperçoit qu'on est au chemin /home/student et on monte tout en haut de la hiérarchie des fichiers à l'aide des caractères ... | ||
+ | |||
+ | Une fois que nous atteignons le répertoire racine /, nous descendons dans le fichier touch, en passant par les répertoires usr et bin. | ||
+ | |||
+ | == Exercises == | ||
+ | - Afficher le chemin actuel à l'aide de l'utilitaire **pwd** | ||
+ | - Reportez-vous aux fichiers/répertoires /lib/, /home, /bin/cat par des chemins relatifs et absolus | ||
+ | - Reportez-vous au répertoire parent (un niveau au-dessus du répertoire actuel) | ||
+ | |||
+ | === Changer le chemin actuel === | ||
+ | Nous placer dans un répertoire autre que celui en cours signifie changer le chemin en cours. Pour ce faire, utilisez la commande cd (changer de répertoire) : | ||
+ | <code bash> | ||
+ | student@uso:/etc$ pwd | ||
+ | /etc | ||
+ | student@uso:/etc$ cd /usr | ||
+ | student@uso:/usr$ pwd | ||
+ | /usr | ||
+ | </code> | ||
+ | |||
+ | On a changé le chemin actuel de /etc à /usr. Cette commande peut être utilisée n'importe où car il s'agit d'un //chemin absolu//. | ||
+ | |||
+ | <note> | ||
+ | Comme toutes les commandes du système de fichiers, la commande cd prend un chemin comme paramètre. Cela peut être à la fois relatif et absolu. | ||
+ | </note> | ||
+ | |||
+ | Nous changeons le chemin actuel en /usr/bin en utilisant le chemin //relatif// : | ||
+ | <code bash> | ||
+ | student@uso:~$ pwd | ||
+ | /home/student | ||
+ | student@uso:~$ cd ../../usr/bin | ||
+ | student@uso:/usr/bin$ pwd | ||
+ | /usr/bin | ||
+ | </code> | ||
+ | |||
+ | <note important> | ||
+ | L'une des informations les plus importantes lorsque vous travaillez dans le système d'exploitation (en particulier dans la ligne de commande) est l'endroit où nous nous trouvons. Si nous savons où nous sommes, nous pouvons nous orienter vers notre destination. Nous savons où nous utilisons la commande **pwd** ; nous nous déplaçons ailleurs en utilisant la commande **cd**. | ||
+ | </note> | ||
+ | |||
+ | Remarquez comment nous avons grimpé dans la hiérarchie en utilisant .. vers / (le répertoire racine) puis vers le bas jusqu'à usr puis bin. | ||
+ | |||
+ | Dans l'exemple ci-dessous, la commande ci-dessus n'est pas valide : | ||
+ | <code bash> | ||
+ | student@uso:~/Desktop$ pwd | ||
+ | /home/student/Desktop | ||
+ | student@uso:~/Desktop$ cd ../../usr/bin | ||
+ | bash: cd: ../../usr/bin: No such file or directory | ||
+ | </code> | ||
+ | |||
+ | Nous remarquons que nous sommes au chemin /home/student/Desktop. En exécutant la commande cd ../../usr/bin ci-dessus, nous arriverions au chemin /home/usr/bin qui n'existe pas. | ||
+ | |||
+ | == Exercises == | ||
+ | - Remplacez le répertoire actuel par le répertoire dans le chemin /usr/bin. Utilisez le chemin absolu. | ||
+ | - Remplacez le répertoire actuel par le répertoire dans le chemin /etc/. Utilisez le chemin relatif. | ||
+ | - Remplacez le répertoire actuel par le répertoire dans le chemin /etc/network/. Utilisez le chemin relatif. | ||
+ | |||
+ | === TAB completion === | ||
+ | La fonction de **complétion de tab** est probablement l'une des fonctions les plus utiles exposées par le shell. En appuyant simplement sur la touche Tab tout en tapant le nom d'une commande, une option de commande ou le chemin d'accès à un répertoire ou à un fichier, le shell complétera automatiquement le texte ou suggérera des options de saisie semi-automatique. | ||
+ | |||
+ | === Raccourcis === | ||
+ | Pour une meilleure efficacité, nous pouvons utiliser des symboles pour interagir avec l'utilitaire **cd**. | ||
+ | |||
+ | Nous utilisons le caractère (**~**) pour faire référence au répertoire personnel de l'utilisateur. | ||
+ | |||
+ | <code bash> | ||
+ | student@uso:/usr/bin$ cd /tmp/ | ||
+ | student@uso:/tmp$ pwd | ||
+ | /tmp | ||
+ | student@uso:/tmp$ cd ~ | ||
+ | student@uso:~$ pwd | ||
+ | /home/student | ||
+ | student@uso:~$ cd /usr/bin/X11/ | ||
+ | student@uso:/usr/bin/X11$ pwd | ||
+ | /usr/bin/X11 | ||
+ | student@uso:/usr/bin/X11$ cd ~ | ||
+ | student@uso:~$ pwd | ||
+ | /home/student | ||
+ | </code> | ||
+ | |||
+ | <note> | ||
+ | Lorsque nous sommes dans le répertoire personnel, l'invite contient le caractère ~ pour l'indiquer. | ||
+ | </note> | ||
+ | |||
+ | === Interagir avec des fichiers sur la ligne de commande === | ||
+ | Le **fichier** est l'unité de base utilisée pour stocker des informations. Qu'il s'agisse d'un document (thème la mate) ou d'un jeu, qu'il s'agisse d'une configuration dans le système d'exploitation, ou du système d'exploitation lui-même, nous utilisons des fichiers pour le stockage. | ||
+ | |||
+ | Nous utilisons la ligne de commande pour interagir avec les fichiers dans plusieurs cas : | ||
+ | * Lorsque le système sur lequel nous nous trouvons n'a **qu'une ligne de commande** | ||
+ | * Lorsque nous pouvons effectuer certaines opérations **plus rapidement** que dans l'interface graphique ; nous pouvons utiliser l'automatisation de certaines tâches (tâches) : nous écrivons un script (un fichier d'automatisation) une fois et l'exécutons à chaque fois que cela est nécessaire. | ||
+ | |||
+ | Une autre raison d'utiliser la ligne de commande est qu'elle utilise beaucoup moins de ressources que l'interface graphique. Ainsi, nous pouvons faire plus avec moins de ressources. | ||
+ | |||
+ | Le composant qui gère l'interprétation des commandes s'appelle un **shell**. Le shell lit les commandes données par l'utilisateur, les interprète et indique au système d'exploitation quoi faire. | ||
+ | |||
+ | Dans ce chapitre, nous expliquons comment nous interagissons avec les fichiers sur la ligne de commande. | ||
+ | |||
+ | <note important> | ||
+ | Pour les exercices de ce chapitre, assurez-vous d'être dans le répertoire workspaces/lab1-simplifiee/sde_lab01/. Pour ce faire, exécutez les commandes suivantes : | ||
+ | <code bash> | ||
+ | codespace@codespaces-5e93d3:/workspaces/lab1-simplifiee$ mkdir /workspaces/lab1-simplifiee/sde_lab01/ | ||
+ | codespace@codespaces-5e93d3:/workspaces/lab1-simplifiee$ cd /workspaces/lab1-simplifiee/sde_lab01/ | ||
+ | student@uso:~/sde_lab01$ pwd | ||
+ | /workspaces/lab1-simplifiee/sde_lab01/ | ||
+ | </code> | ||
+ | </note> | ||
+ | |||
+ | === Travailler avec des fichiers et des répertoires === | ||
+ | == Afficher le contenu d'un répertoire == | ||
+ | Tout comme un dossier contient de nombreuses feuilles, les répertoires contiennent également de nombreux fichiers et répertoires. | ||
+ | |||
+ | Pour afficher le contenu d'un répertoire, nous utilisons la commande **ls** : | ||
+ | <code bash> | ||
+ | student@uso:~$ ls | ||
+ | Desktop Downloads Pictures Templates examples.desktop vm-actions-log.txt | ||
+ | Documents Music Public Videos uso.git | ||
+ | </code> | ||
+ | |||
+ | Nous voyons plus de détails sur les fichiers et répertoires dans le répertoire /home/student (c'est-à-dire le répertoire personnel de l'utilisateur étudiant, ~) en utilisant la commande ls -l : | ||
+ | <code bash> | ||
+ | student@uso:~$ student@uso:~$ ls -l | ||
+ | total 56 | ||
+ | drwxr-xr-x 2 student student 4096 aug 6 2018 Desktop | ||
+ | drwxr-xr-x 3 student student 4096 aug 20 2018 Documents | ||
+ | drwxr-xr-x 2 student student 4096 aug 6 2018 Downloads | ||
+ | drwxr-xr-x 2 student student 4096 aug 6 2018 Music | ||
+ | drwxr-xr-x 2 student student 4096 aug 6 2018 Pictures | ||
+ | drwxr-xr-x 2 student student 4096 aug 6 2018 Public | ||
+ | drwxr-xr-x 2 student student 4096 aug 6 2018 Templates | ||
+ | drwxr-xr-x 2 student student 4096 aug 6 2018 Videos | ||
+ | -rw-r--r-- 1 student student 8980 aug 6 2018 examples.desktop | ||
+ | drwxr-xr-x 14 student student 4096 aug 20 2018 uso.git | ||
+ | -rw-r--r-- 1 student student 4827 aug 21 2018 vm-actions-log.txt | ||
+ | </code> | ||
+ | |||
+ | Nous interprétons les résultats ci-dessus : | ||
+ | - Le premier caractère - nous montre que //examples.desktop// est un fichier normal. Le premier caractère d nous indique que Desktop est un répertoire. | ||
+ | - Les chaînes rw-r--r-- (pour examples.desktop) et rwxr-xr-x (pour Desktop) font référence aux autorisations d'accès | ||
+ | - Les deux mots suivants, étudiant, font également référence aux autorisations et à la propriété | ||
+ | - Le nombre 8980 indique la taille du fichier examples.desktop. Nous remarquons que le répertoire Desktop a une taille de 4096 octets | ||
+ | - Il y a 3 colonnes qui indiquent l'heure du dernier changement. Un accès peut signifier créer ou modifier. La lecture ne change pas cette date. | ||
+ | - Le nom du fichier ou du répertoire est affiché à la fin | ||
+ | |||
+ | == Exercises == | ||
+ | Lister le contenu des répertoires /usr, /tmp, /etc, /home. | ||
+ | |||
+ | === Création de fichiers === | ||
+ | Il y a des situations où nous voulons créer des fichiers. Par exemple, nous voulons écrire du code ou prendre des notes dans une classe. | ||
+ | |||
+ | Les fichiers sont créés à l'aide de l'utilitaire **touch**. | ||
+ | |||
+ | Nous créons un fichier comme celui-ci : | ||
+ | <code bash> | ||
+ | student@uso:~$ cd /home/student/uso_lab02/ | ||
+ | student@uso:~/uso_lab02$ pwd | ||
+ | /home/student/uso_lab02 | ||
+ | student@uso:~/uso_lab02$ ls cities | ||
+ | ls: cannot access 'cities': No such file or directory | ||
+ | student@uso:~/uso_lab02$ touch cities | ||
+ | student@uso:~/uso_lab02$ ls cities | ||
+ | cities | ||
+ | </code> | ||
+ | |||
+ | Si nous voulons créer un fichier avec le nom de villes roumaines, c'est-à-dire que nous voulons que le nom du fichier contienne le caractère espace, nous utilisons toujours la commande touch comme dans l'exemple ci-dessous : | ||
+ | |||
+ | <code bash> | ||
+ | student@uso:~/uso_lab02$ touch cities romania | ||
+ | student@uso:~/uso_lab02$ ls -l | ||
+ | total 0 | ||
+ | -rw-rw-r-- 1 student student 0 oct 12 01:05 cities | ||
+ | -rw-rw-r-- 1 student student 0 oct 12 01:05 romania | ||
+ | </code> | ||
+ | |||
+ | Nous remarquons que dans la commande ci-dessus, nous avons essayé de créer un fichier appelé villes roumanie, mais deux fichiers ont été créés. Pour créer un **fichier avec des espaces (space) inclus dans le nom**, nous devons utiliser des guillemets au début et à la fin du nom comme ceci : **touch "cities romania"**. | ||
+ | <code bash> | ||
+ | student@uso:~/uso_lab02$ touch "cities in romania" | ||
+ | student@uso:~/uso_lab02$ ls -l | ||
+ | total 0 | ||
+ | -rw-rw-r-- 1 student student 0 oct 12 01:05 cities | ||
+ | -rw-rw-r-- 1 student student 0 oct 12 01:05 'cities in romania' | ||
+ | -rw-rw-r-- 1 student student 0 oct 12 01:05 romani | ||
+ | </code> | ||
+ | |||
+ | === Création de répertoires === | ||
+ | Il est utile de créer les répertoires lorsque nous voulons conserver les fichiers dans le système de manière organisée. Par exemple, nous pouvons créer un répertoire pour chaque année du diplôme. Pour chaque année/répertoire, nous créons un répertoire pour chaque matière et pour chaque matière nous pouvons faire des répertoires pour les devoirs, les laboratoires, les cours, etc. | ||
+ | |||
+ | Nous créons les répertoires à l'aide de l'utilitaire **mkdir**. L'étymologie de la commande vient de la langue anglaise - //make directory//. | ||
+ | |||
+ | Nous créons un répertoire GameOfThrones et Avengers dans le répertoire ~ comme dans l'exemple ci-dessous : | ||
+ | <code bash> | ||
+ | student@uso:~$ cd ~/uso_lab02/ | ||
+ | student@uso:~/uso_lab02$ mkdir GameOfThrones | ||
+ | student@uso:~/uso_lab02$ mkdir Avengers | ||
+ | student@uso:~/uso_lab02$ ls -l | ||
+ | total 8 | ||
+ | drwxrwxr-x 2 student student 4096 oct 12 01:07 Avengers | ||
+ | drwxrwxr-x 2 student student 4096 oct 12 01:07 GameOfThrones | ||
+ | (...) | ||
+ | </code> | ||
+ | |||
+ | == Exercises == | ||
+ | <note important> | ||
+ | Pour les exercices de ce chapitre, assurez-vous d'être dans le répertoire /workspaces/lab1-simplifiee/sde_lab01/. Pour ce faire, exécutez les commandes suivantes : | ||
+ | <code bash> | ||
+ | codespace@codespaces-5e93d3:/workspaces/lab1-simplifiee$ mkdir /workspaces/lab1-simplifiee/sde_lab01/ | ||
+ | codespace@codespaces-5e93d3:/workspaces/lab1-simplifiee$ cd /workspaces/lab1-simplifiee/sde_lab01/ | ||
+ | student@uso:~/sde_lab01$ pwd | ||
+ | /workspaces/lab1-simplifiee/sde_lab01/ | ||
+ | </code> | ||
+ | </note> | ||
+ | - Créez un répertoire nommé "WinnieThePooh" et un autre nommé "TomSiJerry". | ||
+ | - Créez les fichiers « Iron Man », « Hulk », « Thor », « Captain America » (**avec espace**) dans le répertoire « Avengers » ; afficher les fichiers dans le répertoire | ||
+ | - Créez les fichiers « Arya », « Daenerys Targaryen » (**avec espace**), « Jon Snow », « Tyrion Lannister » dans le répertoire « GameOfThrones » ; afficher les fichiers dans le répertoire. | ||
+ | |||
+ | === Afficher le contenu d'un fichier === | ||
+ | Nous affichons rapidement le contenu du fichier Arya dans le répertoire GameOfThrones à l'aide de la commande **cat** : | ||
+ | <code bash> | ||
+ | student@uso:~/uso_lab02$ cat GameOfThrones/Arya | ||
+ | student@uso:~/uso_lab02$ | ||
+ | </code> | ||
+ | |||
+ | La commande cat n'a rien affiché car le fichier Arya est //vide//. | ||
+ | |||
+ | Nous écrivons le texte Une fille n'a pas de nom dans le fichier Arya en utilisant la commande echo : | ||
+ | <code bash> | ||
+ | student@uso:~/uso_lab02$ echo "A girl has no name" > "GameOfThrones/Arya" | ||
+ | student@uso:~/uso_lab02$ cat "GameOfThrones/Arya" | ||
+ | A girl has no name | ||
+ | </code> | ||
+ | |||
+ | === Suppression de fichiers === | ||
+ | Nous supprimons le fichier "Hulk" du répertoire "Avengers" à l'aide de l'utilitaire **rm** : | ||
+ | <code bash> | ||
+ | student@uso:~/uso_lab02$ ls Avengers/ | ||
+ | Captain America Hulk Iron Man Thor | ||
+ | student@uso:~/uso_lab02$ rm Avengers/Hulk | ||
+ | student@uso:~/uso_lab02$ ls Avengers/ | ||
+ | Captain America Iron Man Thor | ||
+ | </code> | ||
+ | |||
+ | Sur la première commande, j'ai affiché quels fichiers se trouvent dans le répertoire Avengers. On a utilisé l'utilitaire rm pour supprimer le fichier Hulk du répertoire Avengers. Enfin on a vérifié que le fichier Hulk n'existe plus dans le répertoire Avengers. | ||
+ | |||
+ | |||
+ | === Suppression de répertoires ==== | ||
+ | Les répertoires sont supprimés à l'aide de la commande rmdir ou de la commande **rm -r**. L'étymologie de la commande vient de l'anglais - supprimer le répertoire. Nous essayons de supprimer le répertoire Avengers en utilisant les deux commandes : | ||
+ | <code bash> | ||
+ | student@uso:~/uso_lab02$ ls -l | ||
+ | total 60 | ||
+ | drwxr-xr-x 2 student student 4096 Sep 29 18:02 Avengers | ||
+ | (...) | ||
+ | drwxr-xr-x 2 student student 4096 Sep 29 17:44 GameOfThrones | ||
+ | (...) | ||
+ | student@uso:~/uso_lab02$ rmdir Avengers/ | ||
+ | rmdir: failed to remove 'Avengers/': Directory not empty | ||
+ | </code> | ||
+ | |||
+ | <note important> | ||
+ | La commande **rmdir** sur un répertoire non vide (qui contient au moins un autre fichier ou répertoire) ne fonctionne pas. | ||
+ | </note> | ||
+ | |||
+ | Pour supprimer un répertoire qui n'est pas vide, c'est-à-dire un répertoire contenant au moins un fichier ou un répertoire, nous utilisons l'utilitaire rm avec l'option de récursivité -r : **rm -r**. Cela vous permet de supprimer toute la hiérarchie des fichiers dans le répertoire, en bref : supprimer tout le répertoire. | ||
+ | <code bash> | ||
+ | student@uso:~/uso_lab02$ rm -r Avengers/ | ||
+ | student@uso:~/uso_lab02$ ls -l | ||
+ | total 52 | ||
+ | (...) | ||
+ | drwxr-xr-x 2 student student 4096 Sep 29 17:44 GameOfThrones | ||
+ | (...) | ||
+ | </code> | ||
+ | |||
+ | === Renommer et déplacer des fichiers et des répertoires === | ||
+ | Les fichiers et les répertoires sont renommés de la même manière à l'aide de la commande **mv** comme ceci : **mv nom_actuel nouveau_nom**. | ||
+ | |||
+ | Nous renommons les fichiers et répertoires à l'aide de la commande mv : | ||
+ | <code bash> | ||
+ | student@uso:~/uso_lab02$ ls | ||
+ | GameOfThrones | ||
+ | student@uso:~/uso_lab02$ mv GameOfThrones ThroneOfGames | ||
+ | student@uso:~/uso_lab02$ ls | ||
+ | ThroneOfGames | ||
+ | </code> | ||
+ | On a renommé le fichier GameOfThrones en ThroneOfGames. | ||
+ | |||
+ | Un autre rôle de la commande mv est de **déplacer des fichiers et des répertoires**, dans la hiérarchie des fichiers, d'un endroit à un autre. | ||
+ | |||
+ | Nous déplaçons le répertoire GameOfThrones (avec tout son contenu) vers le chemin /tmp/ en utilisant la commande mv : | ||
+ | <code bash> | ||
+ | student@uso:~/uso_lab02$ ls | ||
+ | Avengers GameOfThrones | ||
+ | student@uso:~/uso_lab02$ mv GameOfThrones/ /tmp/ | ||
+ | student@uso:~/uso_lab02$ ls /tmp/ | ||
+ | GameOfThrones ssh-ApUMKI3HSJ | ||
+ | student@uso:~/uso_lab02$ ls /tmp/ | ||
+ | GameOfThrones ssh-ApUMKI3HSJ | ||
+ | student@uso:~/uso_lab02$ ls | ||
+ | Avengers | ||
+ | </code> | ||
+ | |||
+ | Maintenant, le répertoire GameOfThrones se trouve dans le chemin /tmp/GameOfThrones. On a vérifié en utilisant ls qu'il n'est plus dans le répertoire courant et existe dans le répertoire /tmp/. | ||
+ | |||
+ | Nous reculons le répertoire GameOfThrones (avec tout son contenu) en utilisant un chemin relatif pour pointer vers le répertoire et un chemin absolu pour pointer vers l'endroit où nous voulons que le répertoire se termine en utilisant mv : | ||
+ | |||
+ | <code bash> | ||
+ | student@uso:~/uso_lab02$ mv ../../../tmp/GameOfThrones/ /home/student/ | ||
+ | student@uso:~/uso_lab02$ ls | ||
+ | Avengers GameOfThrones | ||
+ | </code> | ||
+ | |||
+ | <note> | ||
+ | Notez que nous pouvons utiliser des chemins relatifs et absolus comme arguments de la commande mv pour déplacer/renommer des fichiers et des répertoires. | ||
+ | </note> | ||
+ | |||
+ | == Exercises == | ||
+ | - Créez un répertoire Vikings dans le répertoire au chemin /workspaces/lab1-simplifiee/sde_lab01/. | ||
+ | - Créez des fichiers Ragnar, Rollo, Lagertha dans le répertoire Vikings. | ||
+ | - Vérifiez que le répertoire et les fichiers ont été créés. | ||
+ | - Déplacez le répertoire (ainsi que toute la hiérarchie des fichiers) vers l'emplacement /tmp/. | ||
+ | - Vérifiez que le répertoire et la hiérarchie des fichiers ont été déplacés. | ||
+ | - Créez un répertoire NBA dans le répertoire au chemin /home/student/uso_lab02. | ||
+ | - Créez les fichiers MichaelJordan, LeBronJames, DwayneWade et KobeBryant dans le répertoire NBA. | ||
+ | - Déplacez le répertoire NBA (ainsi que toute la hiérarchie des fichiers) vers le répertoire Vikings. | ||
+ | - Renommez le répertoire GameOfThrones en ThronesInTheGame. | ||
+ | - Déplacez les fichiers à l'intérieur du répertoire ThronesInTheGame vers /tmp. | ||
+ | - Déplacez le répertoire vers son emplacement d'origine en utilisant à la fois des chemins relatifs et absolus. |