Null 5
Null 5
Null 5
Exercice 1
Système de fichiers.
1. Si l’on se trouve dans le répertoire /usr/local/eclipse, quel est le nom relatif du fichier
/usr/local/bin/bash?
2. En sachant que le répertoire personnel de l’utilisateur martin est situé dans le répertoire
/home/, quel est le nom absolu le plus court possible du fichier
~martin/if1/../../martin/./dubois/is1/../hanson.mp3?
3. Si l’on se trouve dans le répertoire /tmp, quelle commande taper pour recopier le fichier
mozart.mp3(qui se trouve aussi dans /tmp ) sous le nom musique.mp3 dans le sous-
répertoire MP3 de son répertoire personnel ?
5. Écrire une commande qui permet d’effacer le répertoire /tmp/a-jeter/si l’on suppose que
ce répertoire n’est pas vide (et que l’on dispose des droits suffisants) ?
$ ls –lR
- - -xr- - r- - 1 michel etudiants 12 jan 5 18 :06 fic.sh
drwxr- - r- x 3 michel etudiants 512 jan 5 18 :06 rep
./rep :
-rw-r- - - - - 1 michel etudiants 306 jan 5 18 :06 fic.txt
drw- - - - -w- 2 michel etudiants 512 jan 5 18 :06 sous-rep
./rep/sous-rep :
7. Quelle commande doit émettre le propriétaire pour pouvoir modifier le contenu du fichier
fic.sh?
1
10. Quels utilisateurs peuvent exécuter le script fi.sh?
Redirections.
11. Quel sera le contenu des fichiers a.txt et b.txt après la commande
Ls –R /usr >a.txt 2>b.txt?
Tests et boucles.
16. En utilisant des tests appropriés, écrivez une commande qui ajoute un des préfixes
suivants au nom du fichier fic selon sa nature :
– C_si fic est un lien symbolique ;
– R_si fic est un répertoire ;
– A_pour les autres fichiers.
Expressions régulières. Les questions suivantes portent sur les expressions régulières telles
que celles qu’utilise la commande grep.
18. Écrivez une expression régulière qui représente tous les entiers multiples de 5.
Divers.
19. Comment définir une commande lr équivalente à ls -lr? Comment faire pour pouvoir
l’utiliser même après un redémarrage et depuis n’importe quel terminal ?
20. Un fichier fic contient un entier, une variable vara pour valeur un entier. Écrivez une
commande qui calcule et affiche la somme de ces deux entiers.
Supposons que l’on se situe dans le répertoire Biblio qui contient un grand nombre de
fichiers et dossiers.
1. Écrivez une commande qui permet d’afficher la liste des fichiers du répertoire Biblio dont
le nom contient "Book".
2
2. Écrivez une commande qui affiche cette fois-ci la liste des fichiers du répertoire Biblio et
de sa sous-arborescence dont le nom contient "Book".
3. Écrivez une commande qui affiche la liste des fichiers de Biblio dont le nom contient au
moins deux majuscules.
4. Écrivez une commande qui permet de rajouter à la fin de chacun des fichiers
correspondant à la première question la ligne "Bonne année à tous".
5. Écrivez une commande afin de rajouter à chacun des fichiers précédents la ligne "Ce
fichier me semble bien inutile !" si le fichier est vide.
Commentez chaque ligne du script, puis expliquez en une phrase ce que fait ce script
précisément.
2. Le répertoire rep2 peut contenir un fichier qui a le même nom qu’un fichier du répertoire
rep1. Cela ne veut pas dire que les deux fichiers ont le même contenu. Quelles commandes
faut-il ajouter au script précédent pour qu’il compte aussi les fichiers ayant le même nom
mais un contenu différent dans les répertoires rep1et rep2. N’oubliez pas d’afficher le
résultat.
3. Le script actuel ne vérifie pas l’existence des répertoires à comparer. Modifiez le script
pour faire une telle vérification de la manière suivante :
– avant de faire la comparaison, on vérifie que rep1 et rep2 sont bien des sous-répertoires
du répertoire courant ;
3
– Si ce n’est pas le cas, on affiche un message d’erreur et on termine l’exécution du script
avec la valeur de retour 1. (Pour cela vous pouvez utiliser la commande exit1).
4. Un script qui compare toujours les répertoires de noms rep1 et rep2 n’est pas très utile.
Comment faut-il le modifier pour qu’il compare deux répertoires quelconques passés en
paramètre de ligne de commande ? (Vous pouvez supposer qu’il s’agit de sous-répertoires
du répertoire courant.)