Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Appel à contributeurs. Réunion pour la refonte du wiki lundi 26 juin

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

#1 Le 26/11/2009, à 01:45

jimmy64

supprimer des fichiers avec la commande Find...

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 !

Dernière modification par jimmy64 (Le 28/11/2009, à 02:34)

Hors ligne

#2 Le 26/11/2009, à 04:36

AnsuzPeorth

Re : supprimer des fichiers avec la commande Find...

Bjr,
Avec l'option intégré de find -delete, ca ne fonctionne pas ?

find . -name "*.m3u" -delete

Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#3 Le 26/11/2009, à 04:42

PDemong

Re : supprimer des fichiers avec la commande Find...

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"

Hors ligne

#4 Le 26/11/2009, à 05:54

Hizoka

Re : supprimer des fichiers avec la commande Find...

un petit resolu dans le titre smile

merci pour le "delete" AnzuzPeorth je ne le connaissais pas non plus, j'utilisais "-exec rm {}".

Hors ligne

#5 Le 26/11/2009, à 08:37

helly

Re : supprimer des fichiers avec la commande Find...

Au passage vu que c'est un peu le sujet, ils servent a quoi ces ptits fichier .m3u ? yikes


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#6 Le 26/11/2009, à 08:53

anonyme1

Re : supprimer des fichiers avec la commande Find...

ce sont des playlists


sudo -s
aptitude update && aptitude safe-upgrade
aptitude full-upgrade && aptitude install build-essential linux-headers-$(uname -r)
aptitude autoclean && update-pciids && update-usbids.sh && update-usbids && reboot

Hors ligne

#7 Le 26/11/2009, à 09:14

helly

Re : supprimer des fichiers avec la commande Find...

ha ok smile


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#8 Le 26/11/2009, à 15:54

jimmy64

Re : supprimer des fichiers avec la commande Find...

loool aussi simple que ca, merciii bien smile !!!

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 tongue

Hors ligne

#9 Le 28/11/2009, à 02:31

jimmy64

Re : supprimer des fichiers avec la commande Find...

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....

Hors ligne

#10 Le 28/11/2009, à 05:22

Hizoka

Re : supprimer des fichiers avec la commande Find...

lui devrait fonctionner je pense :

find . -name "*.m3u" -exec rm "{}" \;

Hors ligne

#11 Le 03/12/2009, à 21:29

jimmy64

Re : supprimer des fichiers avec la commande Find...

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 smile

Hors ligne

#12 Le 04/12/2009, à 09:39

Hizoka

Re : supprimer des fichiers avec la commande Find...

ca exécute une commande, la en l'occurrence : rm "{}" => supprime les fichiers trouvés.

Hors ligne

#13 Le 05/12/2009, à 18:49

jimmy64

Re : supprimer des fichiers avec la commande Find...

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....

Hors ligne

#14 Le 06/12/2009, à 14:15

Hizoka

Re : supprimer des fichiers avec la commande Find...

d'ou l'interet des des guillements smile

Hors ligne

#15 Le 21/12/2009, à 00:10

jimmy64

Re : supprimer des fichiers avec la commande Find...

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 big_smile HELP !!!!!

Hors ligne

#16 Le 21/12/2009, à 00:23

Hizoka

Re : supprimer des fichiers avec la commande Find...

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...

Dernière modification par Hizoka (Le 21/12/2009, à 00:26)

Hors ligne

#17 Le 21/12/2009, à 01:13

jimmy64

Re : supprimer des fichiers avec la commande Find...

Merciiiiiiiiii Hizoka, en tout cas tu as raison c'est hors contexte big_smile 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

Hors ligne

#18 Le 21/12/2009, à 21:57

jimmy64

Re : supprimer des fichiers avec la commande Find...

Apparament il serait préférable de remplacer la boucle for avec le Find, par une boucle while, d'après Hizoka...

Un post, pour ceux que ca interesse est ouvert ici : http://forum.ubuntu-fr.org/viewtopic.php?pid=3114812#p3114812

Hors ligne

#19 Le 02/05/2015, à 13:30

degolarson

Re : supprimer des fichiers avec la commande Find...

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

Dernière modification par degolarson (Le 12/05/2015, à 08:00)


26-08-15 xubuntu 14.04 LTS 32b   Laptop Asus PRO79IJ-TY025E      SSD 250Go   RAM 2.9Go    2 x Pentium (R) Dual-Core T4200  2GHz    année 2009    Freebox V5
Cartes : IntelMobile4SeriesGMA500,   wifi  Atheros 9285   
Doucement, nous sommes pressés ! (proverbe chinois ou berrichon ?)
Les jeunes sont ce qu'en font les vieux cons (Pierre Desproges )

Hors ligne

#20 Le 14/05/2015, à 12:32

degolarson

Re : supprimer des fichiers avec la commande Find...

Hello, je me permets un petit up
merci


26-08-15 xubuntu 14.04 LTS 32b   Laptop Asus PRO79IJ-TY025E      SSD 250Go   RAM 2.9Go    2 x Pentium (R) Dual-Core T4200  2GHz    année 2009    Freebox V5
Cartes : IntelMobile4SeriesGMA500,   wifi  Atheros 9285   
Doucement, nous sommes pressés ! (proverbe chinois ou berrichon ?)
Les jeunes sont ce qu'en font les vieux cons (Pierre Desproges )

Hors ligne

#21 Le 14/05/2015, à 13:00

pingouinux

Re : supprimer des fichiers avec la commande Find...

Bonjour,
Ces 3 commandes fonctionnent parfaitement

find . -name "*~" -delete
find . -name "*~" -exec rm "{}" \;
find . -name '*~' -print0 | xargs -0 rm

Hors ligne

#22 Le 14/05/2015, à 13:21

degolarson

Re : supprimer des fichiers avec la commande Find...

Bonjour pingoulnux, merci de répondre
le hic c'est que ben non, elles ne fonctionnent pas chez moi

joel@joel-K70IJ:/media/HD_Data$ find . -name '*~' -print0 | xargs -0 rm
rm: opérande manquant
Saisissez « rm --help » pour plus d'informations.
joel@joel-K70IJ:/media/HD_Data$ 

je ne comprends pas ce qu'est un opérande manquant
merci


26-08-15 xubuntu 14.04 LTS 32b   Laptop Asus PRO79IJ-TY025E      SSD 250Go   RAM 2.9Go    2 x Pentium (R) Dual-Core T4200  2GHz    année 2009    Freebox V5
Cartes : IntelMobile4SeriesGMA500,   wifi  Atheros 9285   
Doucement, nous sommes pressés ! (proverbe chinois ou berrichon ?)
Les jeunes sont ce qu'en font les vieux cons (Pierre Desproges )

Hors ligne

#23 Le 14/05/2015, à 14:13

pingouinux

Re : supprimer des fichiers avec la commande Find...

degolarson a écrit :

je ne comprends pas ce qu'est un opérande manquant

En mathématiques ou en informatique, un opérande est une quantité sur laquelle une opération est exécutée. Voir Wikipédia
Dans ton cas, c'est que la commande rm ne reçoit aucun argument. Sans doute n'y a-t-il aucun fichier se terminant par ~ dans l'arborescence située sous le répertoire courant.

Hors ligne

#24 Le 14/05/2015, à 19:08

degolarson

Re : supprimer des fichiers avec la commande Find...

Ah ça y est j'ai essayé avec

-name '~*' au lieu de -name '*~'

et là effectivement find a trouvé des fichiers correspondants et les a supprimé
merci beaucoup !


26-08-15 xubuntu 14.04 LTS 32b   Laptop Asus PRO79IJ-TY025E      SSD 250Go   RAM 2.9Go    2 x Pentium (R) Dual-Core T4200  2GHz    année 2009    Freebox V5
Cartes : IntelMobile4SeriesGMA500,   wifi  Atheros 9285   
Doucement, nous sommes pressés ! (proverbe chinois ou berrichon ?)
Les jeunes sont ce qu'en font les vieux cons (Pierre Desproges )

Hors ligne

#25 Le 14/05/2015, à 19:24

Hizoka

Re : supprimer des fichiers avec la commande Find...

Ca ne veut pas dire la meme chose...

~* : ce qui commence par ~
*~ : ce qui termine par ~

Hors ligne