J'ai besoin de trouver tous les fichiers commençant par le nom NAME
dans une arborescence de répertoires et supprimer tous ces fichiers en utilisant une seule commande Shell.
Réponses
Trop de publicités?Supprime tous les fichiers du répertoire courant et de ses sous-répertoires dont le nom de fichier commence par "foo" :
$ find . -type f -name foo\* -exec rm {} \;
NB : à utiliser avec précaution - sauvegarder d'abord - faire aussi un essai à sec avant, par exemple
$ find . -type f -name foo\*
vous indiquera simplement les noms des fichiers qui seront supprimés.
Avec le globstar
option (activer avec shopt -s globstar
) :
rm -f **/NAME*
**/
s'étend à ./
, */
, */*/
, */*/*/
etc. Si vous avez un répertoire nom commençant par NAME
la commande se plaindra que rm
ne peut pas supprimer les répertoires, mais c'est tout.
Notez que cela peut se heurter à des limitations de longueur de ligne de commande si le glob correspond à de nombreux fichiers.
Alternativement, avec aussi peu d'invocations de rm
autant que possible, mais sans être soumis aux limitations de longueur des lignes de commande :
find . -type f -name 'NAME*' -exec rm -f {} +
(Remarquez le +
au lieu de \;
pour fermer le -exec
déclaration.)
- Réponses précédentes
- Plus de réponses