Bonjour !

3h que je passe à essayer de supprimer tous les fichiers .m3u de ma bibliothèque audio...

Le but c'est donc de rechercher tous les fichiers .m3u avec Find et de les passer à Rm pour qu'il les supprime...
Le problème c'est que FIND formatte l'affichage donc tous les chemins avec les espaces sont inexploitables !!!

exemple au lieu du bon format : /Mes\ Documents/
Find renvoi : /Mes Documents/ => du coup, ca plante !

Un début : find -name "*.m3u" -exec rm -i {} \;

Reste à ignorer les espaces mais je m'en sors pas avec SED ou IFS... je comprends pas ! Help !
Bjr,
Avec l'option intégré de find -delete, ca ne fonctionne pas ?
find . -name "*.m3u" -delete
Bonne pioche ! Merci AnzuzPeorth, je ne connaissais pas cette option.

Voici la démo que cela fonctionne :
pat@pegase:~/test$ find . -name "*.m3u"
./repertoire/file3.m3u
./repertoire/file4.m3u
./rep ertoire/file5.m3u
./rep ertoire/file6.m3u
pat@pegase:~/test$ find . -name "*.m3u" -delete
pat@pegase:~/test$ find . -name "*.m3u"
un petit resolu dans le titre 🙂

merci pour le "delete" AnzuzPeorth je ne le connaissais pas non plus, j'utilisais "-exec rm {}".
Au passage vu que c'est un peu le sujet, ils servent a quoi ces ptits fichier .m3u ? :o
loool aussi simple que ca, merciii bien 🙂 !!!

Effecitvement je ne connaissais pas non plus l'option "-delete" !!
Je dois pas etre le seul dans ce cas puisque tout le monde utilise généralement l'option "-exec" avec RM 😛
euh.... je reviens sur le sujet car cela ne marche pas sur ma distib...

c'est une busy box et l'option -delete de find n'existe pas... il va donc falloir que je traite les espaces des répertoires différemment....
lui devrait fonctionner je pense :
find . -name "*.m3u" -exec rm "{}" \;
6 jours plus tard
euh la différence se situe au niveau des "{}" ???

j'ai réussi à supprimer toutes les playlists autrement, en graphique à vrai dire mais ca m'intéresserait de savoir supprimer n'importe quel genre de fichier pour faire un script de nettoyage 🙂
ca exécute une commande, la en l'occurrence : rm "{}" => supprime les fichiers trouvés.
ok faudrais que je re test ta commande avec les guillemets... en tout cas, sans les guillemets, la commande bug avec les espaces dans les noms de dossiers....
d'ou l'interet des des guillements 🙂
14 jours plus tard
Ben justement, je ne sais absolument pas gérer les guillemets !! J'y ai passé des soirées entières, j'enrage !!!!! Pourriez vous m'aider sur ce script svp ? J'ai vraiment besoin d'aide et ce, avant mardi midi :S je suis mal...
#!/bin/sh

music="../Dancehall/_Artistes/"
playlistsRep="/volume1/music/playlists/"

cd "$playlistsRep"

for artiste in `"ls "$music""`
do
    playlist_courant="Dancehall > "$artiste".m3u"
    artiste_courant=""$music""$artiste"/"
    touch "$playlist_courant"
    
    for fichier in `"find "$artiste_courant" -name "*.mp3""`
    do
        echo "$fichier" >> "$playlist_courant"
    done
done
Il a du mal avec les espaces des noms et je pense qu'en m'aidant à le corriger je comprendrais enfin comme il faut faire pour gérer les espaces 😃 HELP !!!!!
les " sont utiles si la variable contient des espaces ou des caractères spéciaux, mais il est plus facile au final de traiter toutes les variables de la même façon.

Il est également conseillé d'appeler les variables entre {} afin d'éviter certaines interprétations par bash

De même, il vaut mieux remplacer `` par $().

donc :
#!/bin/sh

music="../Dancehall/_Artistes/"
playlistsRep="/volume1/music/playlists/"

cd "${playlistsRep}"

for artiste in $(ls "${music}")
do
    playlist_courant="Dancehall > "${artiste}".m3u"
    artiste_courant=""${music}""${artiste}"/"
    touch "${playlist_courant}"
    
    for fichier in $(find "${artiste_courant}" -name "*.mp3")
    do
        echo "${fichier}" >> "${playlist_courant}"
    done
done
je n'ai pas touché au code, juste fait les modifs ci-dessus.

m'enfin bon, le topic ne se prête plus vraiment à ca...
Merciiiiiiiiii Hizoka, en tout cas tu as raison c'est hors contexte 😃 j'étais despéré et donc j'ai tenté avec ceux qui m'avait aidé ici (j'ai vu que tu avais aussi répondu ailleurs, merci !!)

Mais bon, le script modifié de Hizoka renvoi une erreur sur la commande FIND
find: ../Dancehall/_Artistes/album/: No such file or directory
find: ../Dancehall/_Artistes/2006/: No such file or directory
5 ans plus tard
Bonjour
Je relance ce fil
je ne parviens pas à supprimer les fichiers de sauvegarde obsolètes , avec aucune de ces 2 commandes : quand je vais voir dans les dossiers pour vérifier les fichiers *.~ s'y trouvent encore
joel@joel-K70IJ:/media/HD_Data$ find . -name "*.~" -delete
joel@joel-K70IJ:/media/HD_Data$ find . -name "*.~" -exec rm "{}" \;
Catfish trouve les fichiers avec *~ ou ~ seul , alors j'ai essayé d'autres syntaxes pour le nom des fichiers mais sans résultat
/media/HD_Data$ find . -name "*~" -delete
joel@joel-K70IJ:/media/HD_Data$ find . -name "~" -delete
joel@joel-K70IJ:/media/HD_Data$ find . -name "~$" -delete  ou /media/HD_Data$ find . -name "*~" -exec rm "{}" \;

J'ai aussi essayé
joel@joel-K70IJ:/media/HD_Data$ find ~/ -name '*~' -print0 | xargs -0 rm
rm: opérande manquant
y a-t-il une erreur dans la doc § 9 ?
Qu'est-ce au juste qu'une opérande ?
merci
12 jours plus tard