Architecture des systèmes et des réseaux / bases de données pou

Transcription

Architecture des systèmes et des réseaux / bases de données pou
Bases Informatiques :
Systèmes d’exploitation, bases de données, Internet
UE de bioinformatique 1 N°BNF101
ED 4
OBJECTIFS :
Savoir lancer une recherche de fichiers.
Aborder la notion de redirection.
Commande find
find est une commande très puissante qui permet de chercher un fichier dans un répertoire.
Syntaxe de la commande :
find répertoire de recherche [-critères] [-actions]
-amin <n>
Recherche par rapport au nombre de minutes n depuis le dernier accès au(x) fichier(s).
Fichier dont les données ont été accédées il y a n minutes.
Exemple : fichiers accédés il y a 20 minutes si n=20
La valeur numérique <n> peut être préfixée par le signe "-'' pour indiquer un intervalle de
temps inférieur à <n>, ou par le signe "+'' pour indiquer une période supérieure à <n>.
-anewer <nom du fichier>
Recherche des fichiers plus récents (dernier accès) que le fichier cité.
-atime <n>
Recherche par rapport au nombre n de plages de 24h depuis le dernier accès au(x) fichier(s).
-cmin <n>
Recherche par rapport au nombre de minutes n depuis la création du(des) fichier(s).
-cnewer <nom du fichier>
Recherche des fichiers plus récents (date de création) que le fichier cité.
-ctime <n>
Recherche par rapport au nombre n de plages de 24h depuis la création du(des) fichier(s).
-mmin <n>
Recherche par rapport au nombre de minutes n depuis la dernière modification du(des) fichier
(s).
-newer <nom du fichier>
Recherche des fichiers plus récents (date de modification) que le fichier cité.
1
-mtime <n>
Recherche par rapport au nombre n de plages de 24h depuis la dernière modification du(des)
fichier(s).
-name <nom du fichier>
Recherche par nom de fichier.
-iname <nom du fichier>
Idem mais sans différencier les majuscules et les minuscules.
En cas d’utilisation des caractères spéciaux, utiliser des guillemets " ".
-size <n>
Recherche les fichiers dont la taille est de n. La valeur n est normalement exprimée en
terme de blocs de 512 octets.
Si n est suivi de c, la valeur est exprimée en terme d'octets.
Si n est suivi de K, la valeur est exprimée en kilo-octets.
-user <nom de l'utilisateur>
Recherche tous les fichiers appartenant à l'utilisateur.
-group <nom du groupe>
Recherche par rapport à l'appartenance à un groupe.
-type <d ou f>
Recherche par type de fichier (d = répertoire, f = fichier normal).
-empty
Recherche tous les fichiers vides (de longueur zéro) et tous les répertoires vides (qui ne
contiennent aucun fichier).
Option -print de find
L'option -print de find a pour effet d'afficher le résultat de la recherche.
Avec certaines implémentations, la commande find doit être utilisée avec l’option -print. Sans
l’utilisation de cette option, même en cas de réussite dans la recherche, find n’affiche rien à la
sortie standard .
:~} find . -print
Le . désignant le répertoire courant, cette commande a donc pour effet de lister toute
l'arborescence depuis le point où vous vous trouvez.
:~} find ~ -print
Dans ce cas, tout le contenu de votre compte est listé.
:~} find / -print
Dans ce cas, les fichiers de toute l'arborescence sont listés.
2
Exercice 1 :
Que font les commandes suivantes?
:~} find . -name "*.c" -print
……………………………………………………………………
Lance la recherche depuis le répertoire courant (.) et affiche le résultat de la recherche (print).
Le critère de recherche porte sur le nom (name) et doit satisfaire le motif (caractères spéciaux)
suivant : "*.c" c'est-à-dire tous les fichiers d’extension .c.
:~} find / -mtime -3 -print
……………………………………………………………………
Pour connaître les derniers fichiers modifiés il y a moins de 3 jours dans toute l’arborescence
(/).
Exercice 2 :
les critères de recherche de find
1. Comment chercher et afficher tous les fichiers dont les noms commencent par un "a"
minuscule ou un "A" majuscule, suivi d'éventuellement quelques lettres ou chiffres, et se
terminant par un chiffre entre 3 et 6 ?
find . -name "[aA]*[3-6]" -print
ou
find . –iname "a*[3-6]" –print
……………………………………………………………………
2. Comment fait-on pour indiquer que le fichier recherché a été modifié il y a 30 jours ? Il y a
plus de 30 jours ? Il y a moins de 30 jours ?
C'est l'option -mtime qui permet de donner une indication en jours. La syntaxe varie selon ce
que l'on souhaite.
-mtime 30
-mtime +30
-mtime -30
3. Comment fait-on pour spécifier que le fichier recherché est un répertoire ?
:~}find . -type d –print
4. Comment indiquer que le fichier recherché (fichier au sens strict) a été modifié il y a moins
de 12 jours et dont la taille est supérieure à 30 K ?
find . -type f -size +30k -mtime -12 –print
3
 Option -exec de find :
L'option -exec de find exécute une commande unix sur les fichiers trouvés d'après les critères
de recherche fixés.
L'option -exec attend comme argument la commande à exécuter qui doit être suivie de {} \ ;
(espace entre {} et \ ; mais pas entre \ ;)
Exemple:
Pour rechercher à partir de son répertoire courant des fichiers ayant pour nom Fic puis les
effacer, vous devez taper :
:~} find . -name Fic -exec ls -l {} \ ;
puis, après vérification
:~} find . -name Fic -exec rm {} \ ;
On peut également faire exécuter la commande de façon interactive en remplaçant -exec par
-ok :
:~} find . -name Fic -ok rm {} \ ;
Dans ce cas, le programme demande, pour chaque fichier trouvé, de confirmer la demande
d'exécution de la commande ; la réponse doit être «y» ou «n».
Exercice 3 :
l'option -exec de find
Comment fait-on pour effacer tous les répertoires de son compte sans demander
confirmation ? (Attention ne pas exécuter cette commande ! )
………………………………………………………….
~} find ~ -type d -exec rm -r {} \;
Comment fait-on pour effacer tous les fichiers de son compte en demandant confirmation ?
………………………………………………………….
~} find ~ -type f -ok rm {} \;
4
La redirection
Sous Linux, il est possible de "rediriger" facilement la sortie d'une commande dans un fichier,
plutôt que de la voir apparaître à l'écran. La redirection peut s'avérer intéressante dans le cas
où l'on veut enregistrer le résultat d'une commande pour l'analyser plus tard.
Syntaxe : ma-commande > mon-fichier
Tous les commentaires, les sorties, de la commande, ne vont pas apparaître à l’écran mais être
écrits dans un fichier.
Exercice 4 :
la redirection
A l’aide d’une commande Unix, lister le contenu de votre répertoire de travail et rediriger le
résultat de la commande vers un fichier nommé : liste.txt
…………………………………………………………………………………………………
:~} cd
:~} ls –l > liste.txt
5