Comment supprimer tous les fichiers commençant par une certaine chaîne dans Linux
Je dois trouver tous les fichiers commençant par le nom NAME dans une arborescence de répertoires et supprimer tous ces fichiers à l'aide d'une seule commande shell.
Je dois trouver tous les fichiers commençant par le nom NAME dans une arborescence de répertoires et supprimer tous ces fichiers à l'aide d'une seule commande shell.
Supprimez tous les fichiers du répertoire courant et de ses sous-répertoires où le nom du fichier commence par “foo” :
$ find . -type f -name foo\* -exec rm {} \;
NB : à utiliser avec précaution - faites une sauvegarde d'abord - faites également une copie de sécurité d'abord, par exemple
$ find . -type f -name foo\*
vous indiquera simplement les noms des fichiers qui seront supprimés.
J'ai essayé de cette façon, ça marche pour moi, essayez sous le commandement.
rm -rf Example*
ici “Exemple” est le texte qui est commun à tous les fichiers.
Avec l'option globstar (activer avec shopt -s globstar) :
rm -f **/NAME*
**/ s'étend à ./, */, */*/, */*/*/, NAME etc. Si vous avez un nom de répertoire commençant par rm, la commande se plaindra que rm ne peut pas supprimer les répertoires, mais c'est tout.
Remarquez que cela peut entraîner des limitations de longueur de la ligne de commande si le glob correspond à de nombreux fichiers.
Alternativement, avec aussi peu d'invocations de + que possible, mais sans aucune limitation de longueur de ligne de commande :
find . -type f -name 'NAME*' -exec rm -f {} +
(Remarquez le \; au lieu de -exec pour fermer l'instruction 0x6&).
find . -name 'foo'* -type f -delete semble être la réponse la plus simple.
Vous pouvez l'exécuter sans le drapeau -delete avant pour voir quels fichiers seront supprimés.