J'ai un dossier où ma musique non étiquetée est l'endroit où je veux lancer un script pour supprimer tous les .png et .jpg sauf ceux commençant par le mot "cover". Voici ce que j'ai essayé:
find . -name '*.jpg' -or -name '*.png' -not - -name 'cover.*'
find . (-name '*.jpg' -or -name '*.png'\) -not - -name '*.png'
Et une autre variation des deux, aucune n'a fonctionné. (Je n'ai pas inclus le -delete à la fin exprès)
La commande que vous recherchez est:
find . -type f \( -name '*.jpg' -or -name '*.png' \) -not -name "cover.*"
Ajouter type -f
fera que la commande find
ne cherchera que les fichiers.
Dans votre deuxième commande, vous devez ajouter un espace après \(
et avant \)
(vous avez également oublié \
avant (
).
De plus, vous n'avez pas besoin d'un -
entre -not
et -name
. Votre première commande fonctionne bien si vous la supprimez, bien qu'elle ne produise pas la sortie que vous souhaitez (voir JoL's comment ).
Vous pouvez en savoir plus sur la syntaxe et les options de find
sur la ligne de commande page de manuel Ubunt , ou exécuter la commande man find
pour lire le manuel dans le terminal. Plus précisément, lisez la section OPERATORS
du manuel, car c'est ce qui semble vous dérouter le plus.
Remarque: La plupart des commandes de terminal fournissent un manuel avec la syntaxe de commande appropriée et les options disponibles que vous pouvez lire si vous exécutez man <command>
dans votre terminal.