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
testdans votre répertoire personnel. - Placez vous dans le dossier
~/test. - Créez des fichiers
toto,t1t,tata,.ut,tut,ete,213,7t7,t3t2t4,toutouettutu.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.shs'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
imagesetvideosdans~/test. -
Proposez une commande pour copier toutes les images png dans le dossier
imageset 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 commandedud'abord) ? dont le nom contient unu? dont le nom comporte unoen deuxième lettre ? dont le nom comporte unten 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.utdoit 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.