- recherche les images contenues dans un dossier "source" + ses sous
dossiers (plusieurs sous niveaux)
- copie ces images dans un répertoire "copie", mais en gardant
l'arborescence d'origine.
je m'explique :
source/dossier1/fichiers images + autres fichiers divers
source/dossier2/dossier2.2/fichiers images + autres fichiers divers
source/dossierX/fichiers images + autres fichiers divers
- recherche les images contenues dans un dossier "source" + ses sous dossiers (plusieurs sous niveaux) - copie ces images dans un répertoire "copie", mais en gardant l'arborescence d'origine.
rsync -a --include=*.gif --include=*.jpg ... source/ copie/
On Wed, 26 Oct 2011 16:41:30 +0200, Carmelo
<carmelo42STOPSPAM@GMAILpointCOM>:
- recherche les images contenues dans un dossier "source" + ses sous
dossiers (plusieurs sous niveaux)
- copie ces images dans un répertoire "copie", mais en gardant
l'arborescence d'origine.
rsync -a --include=*.gif --include=*.jpg ... source/ copie/
- recherche les images contenues dans un dossier "source" + ses sous dossiers (plusieurs sous niveaux) - copie ces images dans un répertoire "copie", mais en gardant l'arborescence d'origine.
rsync -a --include=*.gif --include=*.jpg ... source/ copie/
Jean-Jacques Gerbaud
Le 26/10/2011 16:41, Carmelo a écrit :
Bonjour,
j'essaie de faire un script qui :
- recherche les images contenues dans un dossier "source" + ses sous dossiers (plusieurs sous niveaux) - copie ces images dans un répertoire "copie", mais en gardant l'arborescence d'origine.
je m'explique :
source/dossier1/fichiers images + autres fichiers divers source/dossier2/dossier2.2/fichiers images + autres fichiers divers source/dossierX/fichiers images + autres fichiers divers
Il y a quelques temps, j'ai eu la malchance/déveine/stupidité/ignorance de perdre tous mes fichiers super/hyper importants J'en ai récupéré quelques uns avec le script bash suivant (qui ne vient pas de moi) :
On nomme ce fichier comme on le veut et on fait pareil pour .png et .gif
A moins que quelqu'un de plus malin réussisse à faire cette manoeuvre en une seule fois.
Quoi qu'il en soit, pour ce genre de script, la commande "man find" ne peut être que très utile !
-- Jean-Jacques Gerbaud entre Dauphiné et PACA
Le 26/10/2011 16:41, Carmelo a écrit :
Bonjour,
j'essaie de faire un script qui :
- recherche les images contenues dans un dossier "source" + ses sous
dossiers (plusieurs sous niveaux)
- copie ces images dans un répertoire "copie", mais en gardant
l'arborescence d'origine.
je m'explique :
source/dossier1/fichiers images + autres fichiers divers
source/dossier2/dossier2.2/fichiers images + autres fichiers divers
source/dossierX/fichiers images + autres fichiers divers
Il y a quelques temps, j'ai eu la malchance/déveine/stupidité/ignorance de
perdre tous mes fichiers super/hyper importants J'en ai récupéré quelques
uns avec le script bash suivant (qui ne vient pas de moi) :
- recherche les images contenues dans un dossier "source" + ses sous dossiers (plusieurs sous niveaux) - copie ces images dans un répertoire "copie", mais en gardant l'arborescence d'origine.
je m'explique :
source/dossier1/fichiers images + autres fichiers divers source/dossier2/dossier2.2/fichiers images + autres fichiers divers source/dossierX/fichiers images + autres fichiers divers
Il y a quelques temps, j'ai eu la malchance/déveine/stupidité/ignorance de perdre tous mes fichiers super/hyper importants J'en ai récupéré quelques uns avec le script bash suivant (qui ne vient pas de moi) :
On nomme ce fichier comme on le veut et on fait pareil pour .png et .gif
A moins que quelqu'un de plus malin réussisse à faire cette manoeuvre en une seule fois.
Quoi qu'il en soit, pour ce genre de script, la commande "man find" ne peut être que très utile !
-- Jean-Jacques Gerbaud entre Dauphiné et PACA
Carmelo
On 2011-10-26 16:17:25 +0000, Fabien LE LEZ said:
On Wed, 26 Oct 2011 16:41:30 +0200, Carmelo :
- recherche les images contenues dans un dossier "source" + ses sous dossiers (plusieurs sous niveaux) - copie ces images dans un répertoire "copie", mais en gardant l'arborescence d'origine.
rsync -a --include=*.gif --include=*.jpg ... source/ copie/
merci pour ta réponse, j'ai testé mais ça m'a copié plein de fichiers … dont aucun n'a l'extension gif ou jpg ...
un ls dans le répertoire copie :
$ ls AppData NTUSER.DAT{6cced2f1-6e01-11de-8bed-001e0bcd1824}.TM.blf NTUSER.DAT{6cced2f1-6e01-11de-8bed-001e0bcd1824}.TMContainer00000000000000000001.regtrans-ms
On Wed, 26 Oct 2011 16:41:30 +0200, Carmelo
<carmelo42STOPSPAM@GMAILpointCOM>:
- recherche les images contenues dans un dossier "source" + ses sous
dossiers (plusieurs sous niveaux)
- copie ces images dans un répertoire "copie", mais en gardant
l'arborescence d'origine.
rsync -a --include=*.gif --include=*.jpg ... source/ copie/
merci pour ta réponse, j'ai testé mais ça m'a copié plein de fichiers …
dont aucun n'a l'extension gif ou jpg ...
un ls dans le répertoire copie :
$ ls
AppData
NTUSER.DAT{6cced2f1-6e01-11de-8bed-001e0bcd1824}.TM.blf
NTUSER.DAT{6cced2f1-6e01-11de-8bed-001e0bcd1824}.TMContainer00000000000000000001.regtrans-ms
- recherche les images contenues dans un dossier "source" + ses sous dossiers (plusieurs sous niveaux) - copie ces images dans un répertoire "copie", mais en gardant l'arborescence d'origine.
rsync -a --include=*.gif --include=*.jpg ... source/ copie/
merci pour ta réponse, j'ai testé mais ça m'a copié plein de fichiers … dont aucun n'a l'extension gif ou jpg ...
un ls dans le répertoire copie :
$ ls AppData NTUSER.DAT{6cced2f1-6e01-11de-8bed-001e0bcd1824}.TM.blf NTUSER.DAT{6cced2f1-6e01-11de-8bed-001e0bcd1824}.TMContainer00000000000000000001.regtrans-ms
rsync -a --include=*.gif --include=*.jpg ... source/ copie/
merci pour ta réponse, j'ai testé mais ça m'a copié plein de fichiers …
Oui, je me suis aperçu après-coup que c'était une connerie. J'ai essayé d'annuler mon message, mais ça n'a pas fonctionner. Cela dit, rsync est probablement la bonne piste ; il suffit de trouver la bonne option.
On Wed, 26 Oct 2011 23:45:15 +0200, Carmelo
<carmelo42STOPSPAM@GMAILpointCOM>:
rsync -a --include=*.gif --include=*.jpg ... source/ copie/
merci pour ta réponse, j'ai testé mais ça m'a copié plein de fichiers …
Oui, je me suis aperçu après-coup que c'était une connerie. J'ai
essayé d'annuler mon message, mais ça n'a pas fonctionner.
Cela dit, rsync est probablement la bonne piste ; il suffit de trouver
la bonne option.
rsync -a --include=*.gif --include=*.jpg ... source/ copie/
merci pour ta réponse, j'ai testé mais ça m'a copié plein de fichiers …
Oui, je me suis aperçu après-coup que c'était une connerie. J'ai essayé d'annuler mon message, mais ça n'a pas fonctionner. Cela dit, rsync est probablement la bonne piste ; il suffit de trouver la bonne option.
moi-meme
Le Thu, 27 Oct 2011 00:57:01 +0200, Fabien LE LEZ a écrit :
Cela dit, rsync est probablement la bonne piste ; il suffit de trouver
la
bonne option.
à ce moment là grsync en graphique
Le Thu, 27 Oct 2011 00:57:01 +0200, Fabien LE LEZ a écrit :
Cela dit, rsync est probablement la bonne piste ; il suffit de trouver
Problème, il suffit qu'une seule des *.jpg *.png ou *.gif ne renvoie aucun résultat pour que ça fasse planter tout ton script...
Pour éviter ça, j'utiliserais plutôt find.
J'aurais plutôt écrit :
cd $src for file in $(find . -name "*.jpg" -o -name "*.png" -o -name "*.gif") do mkdir -p $(dirname $dest/$i) mv $i $dest/$i done
Ou mieux, avec zsh:
for file in $(find $src -name "....") do mkdir -p ${${file/$src/$dest}:h} mv $file ${file/$src/$dest} done
L'intérêt par rapport à rsync, c'est de pouvoir faire ta petite cuisine interne (par exemple passer un coup d'imagemagick à chaque fichier à la copie, etc..)
-- Hugues Hiegel [http://www.hiegel.fr/~hugues/]
Bonjour,
Outre la réponse "rsync" qui est excellente ;
Ce cher Carmelo <carmelo42STOPSPAM@GMAILpointCOM> a posté :
for file in $src/*.jpg $src/*.png $src/*.gif
Problème, il suffit qu'une seule des *.jpg *.png ou *.gif ne renvoie
aucun résultat pour que ça fasse planter tout ton script...
Pour éviter ça, j'utiliserais plutôt find.
J'aurais plutôt écrit :
cd $src
for file in $(find . -name "*.jpg" -o -name "*.png" -o -name "*.gif")
do
mkdir -p $(dirname $dest/$i)
mv $i $dest/$i
done
Ou mieux, avec zsh:
for file in $(find $src -name "....")
do
mkdir -p ${${file/$src/$dest}:h}
mv $file ${file/$src/$dest}
done
L'intérêt par rapport à rsync, c'est de pouvoir faire ta petite cuisine
interne (par exemple passer un coup d'imagemagick à chaque fichier à la
copie, etc..)
Problème, il suffit qu'une seule des *.jpg *.png ou *.gif ne renvoie aucun résultat pour que ça fasse planter tout ton script...
Pour éviter ça, j'utiliserais plutôt find.
J'aurais plutôt écrit :
cd $src for file in $(find . -name "*.jpg" -o -name "*.png" -o -name "*.gif") do mkdir -p $(dirname $dest/$i) mv $i $dest/$i done
Ou mieux, avec zsh:
for file in $(find $src -name "....") do mkdir -p ${${file/$src/$dest}:h} mv $file ${file/$src/$dest} done
L'intérêt par rapport à rsync, c'est de pouvoir faire ta petite cuisine interne (par exemple passer un coup d'imagemagick à chaque fichier à la copie, etc..)
-- Hugues Hiegel [http://www.hiegel.fr/~hugues/]
Hugues
Ce cher Hugues a posté :
J'aurais plutôt écrit :
cd $src for file in $(find . -name "*.jpg" -o -name "*.png" -o -name "*.gif") do mkdir -p $(dirname $dest/$i) mv $i $dest/$i done
Le lecteur attentif aura bien entendu remplacé "$i" par "$file" ! :)
-- Hugues Hiegel [http://www.hiegel.fr/~hugues/]
Ce cher Hugues <hugues@hiegel.fr> a posté :
J'aurais plutôt écrit :
cd $src
for file in $(find . -name "*.jpg" -o -name "*.png" -o -name "*.gif")
do
mkdir -p $(dirname $dest/$i)
mv $i $dest/$i
done
Le lecteur attentif aura bien entendu remplacé "$i" par "$file" ! :)