J'ai besoin de trouver tous les fichiers commençant par le nom NAME
dans une arborescence de répertoires et de supprimer tous ces fichiers à l'aide d'une seule commande shell.
J'ai besoin de trouver tous les fichiers commençant par le nom NAME
dans une arborescence de répertoires et de supprimer tous ces fichiers à l'aide d'une seule commande shell.
Réponses:
pour supprimer tous les fichiers dont le nom a un nom --- vous pouvez utiliser
find -name . 'name*' -exec rm {} \;
grep
possède un -exec
interrupteur?
Supprimez tous les fichiers dans le répertoire courant et ses sous-répertoires où le nom de fichier commence par "foo":
$ find . -type f -name foo\* -exec rm {} \;
NB: utiliser avec prudence - sauvegarder en premier - effectuer également un essai à sec en premier, par ex.
$ find . -type f -name foo\*
vous indiquera simplement les noms des fichiers qui seront supprimés.
find . -type f -name foo\* -delete
fait l'affaire
J'ai essayé de cette façon, cela fonctionne pour moi, essayez la commande ci-dessous.
rm -rf Example*
ici "Exemple" est un texte commun à tous les fichiers.
Vous pouvez utiliser find
:
find . -name "name*" -exec rm {} \;
Avec l' globstar
option (activer avec shopt -s globstar
):
rm -f **/NAME*
**/
se développe en ./
, */
, */*/
, */*/*/
etc. Si vous avez un répertoire nom commençant parNAME
la commande se plaignent que rm
ne peut pas supprimer des répertoires, mais c'est tout.
Notez que cela peut entraîner des limitations de longueur de ligne de commande si le glob correspond à plusieurs fichiers.
Alternativement, avec aussi peu d'appels rm
que possible, mais sans aucune limitation de longueur de ligne de commande:
find . -type f -name 'NAME*' -exec rm -f {} +
(Remarquez au +
lieu de \;
fermer la -exec
déclaration.)
find . -name 'foo'* -type f -delete
semble être la réponse la plus simple.
Vous pouvez l'exécuter sans l' -delete
indicateur avant pour voir quels fichiers seront supprimés.
Recherchez le numéro "Inode" du fichier / dossier, puis supprimez-le à l'aide du numéro d'inode. Voici un exemple:
ls -il
3407873 drwxr-xr-x. 2 root root 4096 Mar 30 07:49 –p
find . -inum 3407873 -exec rm -rf {} \;