La ligne de commande de find est constituée de différents types d'options, qui sont combinés pour former des expressions.
L' find
option -delete
est une action.
Cela signifie qu'il est exécuté pour chaque fichier correspondant jusqu'à présent.
Comme première option après les chemins, tous les fichiers sont mis en correspondance ... oups!
C'est dangereux - mais la page de manuel contient au moins un gros avertissement :
De man find
:
ACTIONS
-delete
Delete files; true if removal succeeded. If the removal failed, an
error message is issued. If -delete fails, find's exit status will
be nonzero (when it eventually exits). Use of -delete automatically
turns on the -depth option.
Warnings: Don't forget that the find command line is evaluated as an
expression, so putting -delete first will make find try to delete
everything below the starting points you specified. When testing a
find command line that you later intend to use with -delete, you
should explicitly specify -depth in order to avoid later surprises.
Because -delete implies -depth, you cannot usefully use -prune and
-delete together.
De plus haut en man find
:
EXPRESSIONS
The expression is made up of options (which affect overall operation rather
than the processing of a specific file, and always return true), tests
(which return a true or false value), and actions (which have side effects
and return a true or false value), all separated by operators. -and is
assumed where the operator is omitted.
If the expression contains no actions other than -prune, -print is per‐
formed on all files for which the expression is true.
En essayant ce que find
fera une commande:
Pour voir à quoi ressemble une commande
find . -name '*ar' -delete
supprimera, vous pouvez d'abord remplacer l'action -delete
par une action plus inoffensive - comme -fls
ou -print
:
find . -name '*ar' -print
Cela imprimera les fichiers affectés par l'action.
Dans cet exemple, -print peut être omis. Dans ce cas, il n'y a pas d' action du tout, donc on ajoute implicitement la plus évidente: -print
. (Voir le deuxième paragraphe de la section "EXPRESSIONS" citée ci-dessus)