1er commit
De la docs au format Mkdocs
This commit is contained in:
118
docs/Linux/find.md
Normal file
118
docs/Linux/find.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# find
|
||||
|
||||
|
||||
|
||||
La commande **find** permet de retrouver des fichiers à partir de certains critères. Elle doit être utilisé avec l'option **-print**
|
||||
|
||||
Les <u>critères de recherche</u> sont les suivants :
|
||||
|
||||
- **-name** recherche sur le nom du fichier,
|
||||
- **-perm** recherche sur les droits d'accès du fichier,
|
||||
- **-links** recherche sur le nombre de liens du fichier,
|
||||
- **-user** recherche sur le propriétaire du fichier,
|
||||
- **-group** recherche sur le groupe auquel appartient le fichier,
|
||||
- **-type** recherche sur le type (d=répertoire, c=caractère, f=fichier normal),
|
||||
- **-size** recherche sur la taille du fichier en nombre de blocs (1 bloc=512octets),
|
||||
- **-atime** recherche par date de dernier accès en lecture du fichier,
|
||||
- **-mtime** recherche par date de dernière modification du fichier,
|
||||
- **-ctime** recherche par date de création du fichier.
|
||||
|
||||
<u>Options:</u>
|
||||
|
||||
|
||||
|
||||
Recherche par <u>nom de fichier</u>:
|
||||
|
||||
```bash
|
||||
find /usr -name toto -print
|
||||
|
||||
find /usr -name " *.c " -print
|
||||
|
||||
# commence par un a ou A, suivi de quelque chose, et se termine par un chiffre compris entre 3 et 6
|
||||
|
||||
find . -name '[aA]*[3-6]' -print
|
||||
```
|
||||
|
||||
Recherche suivant la <u>date de dernière modification</u>:
|
||||
|
||||
```bash
|
||||
# modifiés il y a 30 jours
|
||||
|
||||
find / -mtime 30 -print
|
||||
|
||||
# modifiés il y a 30 jours ou plus
|
||||
|
||||
find / -mtime +30 -print
|
||||
|
||||
# modifiés il y a 30 jours ou moins
|
||||
|
||||
find / -mtime 30 -print
|
||||
```
|
||||
|
||||
Recherche suivant la <u>taille</u>:
|
||||
|
||||
```bash
|
||||
# fichiers dont la taille dépasse 30ko
|
||||
|
||||
find / -size +30k -print
|
||||
```
|
||||
|
||||
Recherche en utilisant les <u>opérateurs logiques</u>:
|
||||
|
||||
```bash
|
||||
# les fichiers n'appartenant pas à l'utilisateur olivierles fichiers n'appartenant pas à l'utilisateur olivier
|
||||
|
||||
find . ! -user olivier -print
|
||||
|
||||
# Recherche les fichiers dont le nom est a.out ou les fichiers se terminant par *.c (une condition OU l'autre).
|
||||
|
||||
find . \ ( -name a.out -o -name " *.c " \ ) -print
|
||||
|
||||
# Recherche des fichiers dont le nom est core et d'une taille supérieure à 1Mo (une condition ET l'autre).
|
||||
|
||||
find . \ (-name core -a size +2000 \ ) -print
|
||||
```
|
||||
|
||||
Recherche <u>combinée</u>:
|
||||
|
||||
```bash
|
||||
# les fichiers de l'utilisateur bruno dont les permissions sont 755
|
||||
|
||||
find / -type f -user bruno -perm 755 -print
|
||||
```
|
||||
|
||||
|
||||
|
||||
Commandes en option:
|
||||
|
||||
```bash
|
||||
# Recherche les fichiers toto et les efface.
|
||||
|
||||
find . -name toto -exec rm {}\ ;
|
||||
|
||||
# Pour avoir une demande de confirmation avant l'exécution de rm
|
||||
|
||||
find . -name toto -ok rm {}\ ;
|
||||
```
|
||||
|
||||
Utilisation avec d'autres commandes:'
|
||||
|
||||
```bash
|
||||
# Recherche les fichiers normaux dans le répertoire courant, puis chercher le chaine toto dans ces fichiers.
|
||||
|
||||
find . -type f -print | xargs grep toto
|
||||
|
||||
# Recherche les fichiers toto et les efface après confimation (-p).
|
||||
# idem -exec, " | xargs " ne crée qu'un seim processus.
|
||||
|
||||
find . -name toto | xargs -p rm
|
||||
```
|
||||
|
||||
|
||||
|
||||
Redirection des messages d'erreur:
|
||||
|
||||
```bash
|
||||
find / -name toto -print 2>/dev/null
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user