====== La commande "find" ======
La page de [[man de find]].
===== Exemples =====
==== Pour renommer des fichiers ====
J'ai utilisé "find" pour créer un fichier "nom.extension.html" à côté de chaque fichier "nom.extension", pour [[minigalnano]].
Si on est pas dans le bon dossier, on peut donner l'emplacement :
$ find /home/simon/emplacement/ -iname "*.JPG" -execdir sh -c 'touch `echo "$1" | sed "s/\.\///" | sed "s/\.JPG/\.html/"`' sh {} \;
Si on est dans le bon répertoire, pas besoin :
$ find -iname "*.JPG" -execdir sh -c 'touch `echo "$1" | sed "s/\.\///" | sed "s/\.JPG/\.html/"`' sh {} \;
==== Pour trouver des liens cassés ====
$ find . -xtype l
==== Pour trouver les derniers fichiers modifiés ====
Depuis 24h (ou 1320 minutes) :
root@mon-serveur:/# find /var/www/html/ -mmin -1320
Ou avec des dossiers exclus :
find / -not -path '/sys*' -not -path '/dev*' -not -path '/proc*' -mmin -60
__Source:__ [[http://www.tux-planet.fr/trouver-les-derniers-fichiers-modifies-sous-linux/|http://www.tux-planet.fr/trouver-les-derniers-fichiers-modifies-sous-linux/]]
==== Pour trouver les dossiers qui ont été modifié il y a plus de x jours et les compresser ====
L'arborescence :
$ tree -d
.
├── 4
│ ├── 19
│ ├── 20
│ ├── 23
│ ├── 24
│ └── 30
└── 5
├── 1
├── 10
├── 11
├── 12
├── 2
├── 3
├── 5
└── 6
$ find . -type d | find -ctime 0 -type d -regextype sed -iregex ".*[0-9]/[0-9]*"
./4/23
./4/24
./4/20
./4/19
./4/30
./5/2
./5/11
./5/10
./5/5
./5/3
./5/12
./5/1
./5/6
Et avec le [[tar]] pour faire des archives de chaque sous-dossier :
$ find . -type d | find -ctime 0 -type d -regextype sed -iregex ".*[0-9]/[0-9]*" -exec tar -czf {}.tar.gz {} \;
$ tree -L 2
.
├── 4
│ ├── 19
│ ├── 19.tar.gz
│ ├── 20
│ ├── 20.tar.gz
│ ├── 23
│ ├── 23.tar.gz
│ ├── 24
│ ├── 24.tar.gz
│ ├── 30
│ └── 30.tar.gz
└── 5
├── 1
├── 10
├── 10.tar.gz
├── 11
├── 11.tar.gz
├── 12
├── 12.tar.gz
├── 1.tar.gz
├── 2
├── 2.tar.gz
├── 3
├── 3.tar.gz
├── 5
├── 5.tar.gz
├── 6
└── 6.tar.gz