1. Génération de noms de fichiers
Pour éviter d’avoir à taper les noms complets des fichiers, mais aussi pour pouvoir représenter plusieurs fichiers sous forme concise, il existe des raccourcis pour écrire les noms de fichiers ou de dossiers. Ces raccourcis vont permettre par exemple de déplacer tous les fichiers dont le nom finit par .jpg
dans un répertoire images
ou encore de supprimer tous les fichiers dont le nom contient un chiffre.
- Créez un dossier
test
dans votre répertoire personnel. - Placez vous dans le dossier
~/test
. - Créez des fichiers
toto
,t1t
,tata
,.ut
,tut
,ete
,213
,7t7
,t3t2t4
,toutou
ettutu.jpg
. - Veillez à ce qu'aucun des fichiers précédemment créés ne reste vide et contienne au minimum une phrase rappelant le nom du fichier, par exemple pour le fichier
tut
, un contenu approprié seraitIci tut
. - Essayez les commandes
ls *u*
,ls t*t*
etls t?t?
.
Le caractère *
peut remplacer n’importe quelle suite de caractères, le caractère ?
peut remplacer n’importe quel caractère (mais un seul).
Par défaut, les jokers *
et ?
ne peuvent jamais remplacer un caractère .
en début de mot ou immédiatement après un /
. Dans ces cas, le caractère .
doit être matché
explicitement.
- Dans votre dossier personnel, exécuter les commandes suivantes :
curl https://homepages.loria.fr/dmery/cours/r108/imdata.sh > ~/imdata.sh chmod +x ~/imdata.sh ~/imdata.sh
Si le scriptimdata.sh
s'est correctement exécuté, vous devriez maintenant avoir un répertoire/tmp/matlab/toolbox/images/imdata
. Vérifiez que c'est bien le cas avant de continuer.
Dans le dossier /tmp/matlab/toolbox/images/imdata/
se trouvent des fichiers dont le nom se termine par .png
(des images) et des fichiers dont le nom se termine par .avi
(des films).
-
Créez des dossiers
images
etvideos
dans~/test
. -
Proposez une commande pour copier toutes les images png dans le dossier
images
et une commande pour copier tous les films avi dans le dossiervideos
. - Comment peut-on afficher les tailles en kibi-octets (2^10 octets), puis en kilo-octets (10^3 octets) de toutes les images png dont le nom commence par un
t
(lisez le man de la commandedu
d'abord) ? dont le nom contient unu
? dont le nom comporte uno
en deuxième lettre ? dont le nom comporte unt
en deuxième lettre ? - Replacez vous dans votre dossier
test
Un mécanisme plus complexe permet de sélectionner des ensembles de noms de fichiers comportant un caractère parmi une liste : les classes de caractères. Les classes de caractères s’écrivent de la façon suivante : [aef]
ou encore [a-f0-9]
. Le premier motif représente soit un e
, soit un a
, soit un f
. Le deuxième représente soit une lettre minuscule entre a
et f
, soit un chiffre (ce qui nous donne les chiffres hexadécimaux).
- Testea la commande
cat t[a-o]*
, la commandels ?[tu]*
. - Proposez une commande permettant de lister tous les fichiers dont la deuxième lettre est un
u
(le fichier.ut
doit donc faire partie du résultat). - Proposez une commande supprimant tous les fichiers dont le nom commence par un chiffre.
- Proposez une commande supprimant tous les fichiers dont le nom comporte un chiffre.