J'exécute cette commande:
~/shell_temp$ find . -type f -name "IMAG1806.jpg" -exec rm -f {}\
j'ai obtenu la sortie ci-dessous:
> IMAG1806.jpg
Error:
find: missing argument to `-exec'
quelle est la commande exacte pour trouver n'importe quel fichier du répertoire courant et supprimer avec -exec
?
command-line
find
Akshay Patel
la source
la source
rm "IMAG1806.jpg"
? Il se trouve dans le même répertoire, vous savez donc comment il s'appelle.-exec rm
simplement utiliser-delete
directement.Réponses:
Vous avez raté le a
;
à la fin (et un espace aussi entre{}
et;
). La commande correcte est:;
indique la fin du-exec
prédicat defind
.Notez également que nous avons utilisé
\;
ie\
devant;
pour échapper à l'interprétation de;
par shell, sinon shell sera traité;
comme la fin de lafind
commande entière etfind
lancera la même erreur. Vous pouvez également utiliser à la';'
place de\;
.Vous utilisiez
\
à la fin, cela indique que votre shell continuera à prendre des entrées viaPS2
(indiqué par>
), vous avez tapé àIMAG1806.jpg
nouveau, donc toute la commande devient:Comme vous pouvez le voir, ce n'est pas du tout une commande valide avec
IMAG1806.jpg
à la fin, pas de fermeture de-exec
prédicat et sans espace entre{}
et\;
.la source
;
à la fin" Merci pour cela, j'ai passé 10 minutes à dépanner avant de réaliser que j'avais accidentellement tapé:
au lieu de;
, sur ces écrans HD modernes, c'est facile à manquer ...Vous pouvez simplement
Depuis la page de manuel:
la source