GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser la commande find pour supprimer les fichiers correspondant à un modèle ?

Solution 1 :

Je trouve généralement qu'en utilisant le -exec option pour find pour être plus facile et moins déroutant. Essayez ceci :

find . -name vmware-*.log -exec rm -i {} \;

Tout après -exec est considéré comme une commande à exécuter pour chaque résultat, jusqu'au ; , qui est échappé ici afin qu'il soit passé à find . Le {} est remplacé par le nom de fichier find imprimerait normalement.

Une fois que vous avez vérifié qu'il fait ce que vous voulez, vous pouvez supprimer le -i .

Solution 2 :

Si vous avez GNU find vous pouvez utiliser le -delete choix :

find . -name "vmware-*.log" -delete

Pour utiliser xargs et évitez le problème des espaces dans les noms de fichiers :

find . -name vmware-*.log -print0 | xargs -0 rm

Cependant, vos fichiers journaux ne doivent pas contenir d'espaces dans leurs noms. Les documents de traitement de texte et les fichiers MP3 sont susceptibles d'en contenir, mais vous devriez pouvoir contrôler les noms de vos fichiers journaux.

Solution 3 :

Vous pouvez dire find pour délimiter la liste de sortie avec des NULL, et xargs pour recevoir sa liste d'entrée de la même manière :

$ ls -l "file 1" "file 2"
-rw-r--r-- 1 james james 0 Oct 19 13:28 file 1
-rw-r--r-- 1 james james 0 Oct 19 13:28 file 2

$ find . -name 'file *' -print0 | xargs -0 ls -l
-rw-r--r-- 1 james james 0 Oct 19 13:28 ./file 1
-rw-r--r-- 1 james james 0 Oct 19 13:28 ./file 2

$ find . -name 'file *' -print0 | xargs -0 rm -v
removed `./file 2'
removed `./file 1'

Assurez-vous également d'échapper le * , soit avec un antislash, soit en contenant le vmware-*.log entre guillemets simples, sinon votre shell peut essayer de l'étendre avant de le passer à find .

Solution 4 :

N'oubliez pas le -delete de la trouvaille option. Il supprime le fichier sans erreur avec des caractères spéciaux...


Linux
  1. Comment trouver le nombre de fichiers dans un répertoire et des sous-répertoires

  2. Comment supprimer des fichiers ÉNORMES (100-200 Go) sous Linux

  3. Comment rechercher des fichiers avec la commande fd sous Linux

  4. Comment utiliser la commande Linux find pour rechercher des fichiers

  5. Supprimer les fichiers correspondants dans tous les sous-répertoires

Comment utiliser la commande cp pour copier des fichiers et des répertoires

Comment utiliser la commande SCP pour transférer des fichiers

Comment utiliser la commande SED pour rechercher et remplacer une chaîne dans des fichiers

Comment rechercher des fichiers avec la commande fd sous Linux

Comment supprimer/supprimer des fichiers sous Linux à l'aide de la commande rm

Comment trouver des dossiers sous Linux