GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Supprimer les annonces filtrées lors de la production d'une sortie ?

J'ai un répertoire avec un tas d'extensions de fichiers mélangées et je voudrais lister une extension de fichier spécifique (peut-être quelque chose comme grep *.mp3 ) et lors de la liste, supprimez-les avec une sortie. Comment puis-je faire cela ou s'il y a un dupe, n'hésitez pas à me taguer.

Exemple :

grep "*.mp3" . | rm -fr 

Réponse acceptée :

Commençons par un répertoire avec trois mp3 fichiers :

$ ls *mp3
a.mp3  b.mp3  c.mp3

Maintenant, supprimons-les après avoir listé ce que nous supprimons :

$ find . -maxdepth 1 -name '*.mp3' -printf 'Deleting %p\n' -delete
Deleting ./a.mp3
Deleting ./b.mp3
Deleting ./c.mp3

Après cela, le mp3 les fichiers ont disparu :

$ ls *mp3
ls: cannot access '*mp3': No such file or directory

Comment ça marche

  • `trouver .

    Cela lance une find commande. Il recherchera les fichiers dans le répertoire courant, . .

  • -maxdepth 1

    Par défaut, find recherche récursivement dans les sous-répertoires. Cela lui dit de ne pas le faire. Avec -maxdepth 1 , la commande find ne regardera que ce qu'il trouve dans le répertoire courant et n'explorera aucun des sous-répertoires du répertoire courant.

  • -name '*.mp3'

    Cela indique à find de rechercher uniquement les fichiers avec le .mp3 extension.

  • -printf 'Deleting %p\n'

    Cela indique à find d'imprimer un message sur chaque fichier trouvé.

    Vous pouvez, bien sûr, changer cela en un autre message si vous le souhaitez. Si vous ne voulez pas de message, cette option peut être complètement omise.

  • -delete

    Cela indique à find de supprimer chaque fichier.

Recherche insensible à la casse

Si vous souhaitez également rechercher des fichiers nommés .MP3 ou .Mp3 etc., alors nous avons besoin d'une recherche insensible à la casse et nous utilisons -iname :

find . -maxdepth 1 -iname '*.mp3' -printf 'Deleting %p\n' -delete

Ubuntu
  1. Recherche de fichiers dans la ligne de commande (Comment faire)

  2. Comment imprimer une sortie multiligne sur la même ligne ?

  3. Vous ne trouvez pas la poubelle ?

  4. Trouver l'adresse Mac dans le système de fichiers ?

  5. Savoir si le système d'exploitation s'exécute dans un environnement virtuel

Comment trouver l'adresse MAC dans Ubuntu

Comment trouver des fichiers sur la ligne de commande Ubuntu

Trouver l'adresse MAC dans Ubuntu 21.10

Skype ne trouve pas l'entrée audio ?

Trouver la ligne de commande ?

Comment trouver le ou les volumes physiques contenant un volume logique dans LVM