IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Copie et renommage de fichier


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 15
    Par défaut Copie et renommage de fichier
    Bonsoir,

    Pour ma bibliothèque multimédia j'utilise des pochettes au nom folder.jpg.

    Mais un nouveau lecteur me demande cover.jpg

    Il me faut donc garder les deux.

    Pour faire ca je dois parcourir tous les répertoires avec folder.jpg et les copier en les renommant tous en cover.jpg

    J'ai essayer plusieurs choses mais à chaque fois je bloque sur les espaces entre les noms.

    J'ai par ex :

    cp: impossible d'évaluer «./Various/Celtic»: Aucun fichier ou dossier de ce type
    cp: impossible d'évaluer «Punk»: Aucun fichier ou dossier de ce type
    cp: impossible d'évaluer «Songs/cover.jpg»: Aucun fichier ou dossier de ce type

    avec find . -name "folder.jpg" -exec cp {} `echo {} | sed "/folder/s//cover/"` \;ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name "folder.jpg" | while read l ; do cp "$l" `echo "$l" | sed "/folder/s//cover/"` ; done
    j'ai aussi essayé avec basename et dirname mais j'avoue que je bloque ...

    Une idée ? Merci d'avance !

  2. #2
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 15
    Par défaut
    bon et bien il me semble avoir trouvé il faut passer execdir à find ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name "cover.jpg" -execdir cp {} folder.jpg \;

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 831
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 831
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par biggir Voir le message
    bon et bien il me semble avoir trouvé il faut passer execdir à find ...

    find . -name "cover.jpg" -execdir cp {} folder.jpg \;
    Salut
    Je ne connais pas l'option "execdir" mais normalement, "exec" devrait marcher dans ton cas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name "cover.jpg" -exec cp {} folder.jpg \;
    Accessoirement, c'est dommage de copier tout le fichier pour une bête histoire de nom (les liens c'est pas fait que pour faire joli !!!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name "cover.jpg" -exec ln {} folder.jpg \;
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 15
    Par défaut
    salut,

    1/ en tout cas sur mon ubuntu il aime pas le cp quand il y a des espaces ...

    2/ c'est pour mettre sur un lecteur mp3 je ne suis pas sur qu'il connaisse les ln mais en effet je l'avais pas précisé

    A+

  5. #5
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 15
    Par défaut
    Mais bon j'ai le meme probleme quand je veux copier des repertoires toujours ces foutus espaces

    je viens de retester ...

    peut etre encoder tous les caracteres spéciaux dont espace ?

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 831
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 831
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par biggir Voir le message
    salut,

    1/ en tout cas sur mon ubuntu il aime pas le cp quand il y a des espaces ...
    Le shell en général n'aime pas les espaces dans les noms de fichier car il s'agit d'un séparateur d'élément. Mais ça peut se gérer facilement dans la forme cp "nom avec espace" "autre nom avec espace". Bon, je tape à capella (pas connecté sous Linux pour tester) mais un truc de ce genre find . -name "cover.jpg" -exec cp \"{}\" \"folder.jpg\" \; devrait fonctionner. Sinon je regarderai en détail.

    Citation Envoyé par biggir Voir le message
    2/ c'est pour mettre sur un lecteur mp3 je ne suis pas sur qu'il connaisse les ln mais en effet je l'avais pas précisé
    Tu es bien sur un Linux au départ. D'après ce que j'ai compris, tu veux créer un second nom nommé "folder.jpg". Là le ln fonctionne. Et si ensuite tu veux copier ce "folder.jpg" sur ton mp3, alors un cp fonctionnera aussi.
    Evidemment si tu veux copier le fichier "cover.jpg" sur ton mp3 direct, bien entendu le ln ne fonctionne plus (en plus il s'agit de FS différents)

    Citation Envoyé par biggir Voir le message
    Mais bon j'ai le meme probleme quand je veux copier des repertoires
    D'après ce que j'avais compris, il s'agissait de fichiers. Si tu veux copier des répertoires entiers, alors là non seulement ln ne fonctionnera pas mais en plus un cp simple ne fonctionnera pas non plus !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 15
    Par défaut
    pour le copie et renommage ça fonctionne bien.

    Par contre c’était un deuxième problème (j'aurais du peut-être ouvrir un deuxième post) pour copier aléatoirement des répertoires dans un autre.

    Comme j'avais ce soucis d'espace (même avec des guillemets) je suis passé par des inodes et là ça roule :

    je récupère l'inode (dans une boucle avec un `ls -FRQ | grep '/$' | wc -l` pour le nombre de répertoires)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    inode=`ls -FRil | grep '/$' | cut -d" " -f1 | head -n $x | tail -1`
    et je le copie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -inum $inode -exec cp -r --parents {} $rep_cible \;
    bon c'est peut être pas très propre mais avec mon niveau je suis content que ça marche déjà !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] copie + renommage de fichiers sur un répertoire réseau
    Par PoichOU dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 10/03/2014, 15h28
  2. probléme copie ou renommage de fichier
    Par catalunya dans le forum Général Java
    Réponses: 4
    Dernier message: 30/03/2011, 11h17
  3. Copie et renommage d'un fichier simultanément
    Par OphyTe dans le forum ANT
    Réponses: 1
    Dernier message: 30/07/2010, 18h38
  4. copie et renommage de fichiers avec leur extension
    Par TaleMaker dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/02/2009, 17h06
  5. parcourir des tableaux pour faire des copies/renommages de fichiers
    Par Paloma dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 31/10/2006, 09h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo