|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : avril 2004 Messages : 13 ![]() |
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 :
find . -name "folder.jpg" | while read l ; do cp "$l" `echo "$l" | sed "/folder/s//cover/"` ; done Une idée ? Merci d'avance ! |
|
|
10
|
|
|
#2 |
|
Invité régulier
![]() Inscription : avril 2004 Messages : 13 ![]() |
bon et bien il me semble avoir trouvé il faut passer execdir à find ...
Code :
find . -name "cover.jpg" -execdir cp {} folder.jpg \; |
|
|
10
|
|
|
#3 | |
|
Expert Confirmé Sénior
![]() Frédéric Ingénieur développement logiciels Inscription : février 2006 Messages : 3 055 ![]() |
Citation:
Je ne connais pas l'option "execdir" mais normalement, "exec" devrait marcher dans ton cas... Code :
find . -name "cover.jpg" -exec cp {} folder.jpg \; Code :
find . -name "cover.jpg" -exec ln {} folder.jpg \;
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit. Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant. Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation. Dr. Adrian Rogers, 1931 |
|
|
|
01
|
|
|
#4 |
|
Invité régulier
![]() Inscription : avril 2004 Messages : 13 ![]() |
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 A+ |
|
|
01
|
|
|
#5 |
|
Invité régulier
![]() Inscription : avril 2004 Messages : 13 ![]() |
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 ? |
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé Sénior
![]() Frédéric Ingénieur développement logiciels Inscription : février 2006 Messages : 3 055 ![]() |
Citation:
Citation:
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) 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 !!!
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit. Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant. Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation. Dr. Adrian Rogers, 1931 |
||
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : avril 2004 Messages : 13 ![]() |
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 :
inode=`ls -FRil | grep '/$' | cut -d" " -f1 | head -n $x | tail -1` Code :
find . -inum $inode -exec cp -r --parents {} $rep_cible \; |
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : avril 2004 Messages : 13 ![]() |
desolé de dérivier un peu quand meme mais il ne manque plus qu'une chose :
ne recuperer que les sous repertoires : car mon ls -FRil | grep '/$' me recupere tous les repertoires alors que je veux juste les sous répertoires c'est mon grep qu'il faut que j'ameliore ./rep1 ./rep1/rep11 ./rep1/rep12 ./rep2 ./rep2/rep21 je ne veux que les repXX .... je vais peut etre m'orienter vers un find car il me semble qu'un puisse faire un -depth |
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : avril 2004 Messages : 13 ![]() |
bon et bien en fait j'ai une astuce qui marche :
ce 2 me permet de ne récupérer que les répertoires qu'il me faut qui ne contiennent que mes fichiers (il faut par contre que ce soit carré et pas de répertoires qui trainent par hasard) |
|
|
00
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() Inscription : février 2008 Messages : 2 071 ![]() |
Bonjour,
tu devrais te pencher sérieusement sur le man de find, plutôt que de bricoler. {} protège les espaces dans les chemins et les noms de fichiers, les guillemets ne sont donc pas nécessaires. |
|
|
20
|
|
|
#11 | ||
|
Expert Confirmé Sénior
![]() Frédéric Ingénieur développement logiciels Inscription : février 2006 Messages : 3 055 ![]() |
Citation:
Citation:
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit. Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant. Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation. Dr. Adrian Rogers, 1931 |
||
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Inscription : avril 2004 Messages : 13 ![]() |
ok merci pour toutes ces infos !
Je fais quelque chose de finalise et vous mets le code pour ceux que ca interesse ... ou pas |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com