une bonne âme pourrait-elle me donner la ligne de commande à écrire pour
- copier un fichier depuis un dossier
- dans un autre dossier
- *et* en lui changeant le nom au passage
Le 9/25/08 6:56 AM, patpro ~ patrick proniewski a écrit :
In article <48daa403$0$967$, SAM wrote:
J'ai essayé avec tout sur une ligne, ça ne fonctionne pas
quel intérêt ?
Comme ça, pour voir. (plus facile à copier-coller ?)
Tout sur une ligne ça donnerait :
for fichier in *; do cp ${fichier} "/destination/du/prefix_${fichier}"; done
J'étais certain d'avoir essayé :-(
pour commencer une nouvelle commande ?
ctrl-c
OK.
Aaaarrghhh ! c'est vrai que les noms avec espaces et accentués ça n'a pas l'air de plaire :-(
ha ben ça...j'avais prévenu.
Pourtant je glisse le fichier sur le terminal qui m'en traduit le nom, du genre : Trav Envoye314201 pour : Trav Envoyé
Ha! j'ai finalement trouvé une espèce de tuto pour le CLI Unix : <http://fr.wikipedia.org/wiki/Commandes_UNIX>
Bon, je n'arrive quand même pas à transformer en exécutable ce petit test-démo L'aide Apple semble dire que c'est possible avec chmod mais je n'ai peut-être pas compris ni comment faire ni ce qu'était un "exécutable" ?
-- sm
Le 9/25/08 6:56 AM, patpro ~ patrick proniewski a écrit :
In article <48daa403$0$967$ba4acef3@news.orange.fr>,
SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> wrote:
J'ai essayé avec tout sur une ligne, ça ne fonctionne pas
quel intérêt ?
Comme ça, pour voir.
(plus facile à copier-coller ?)
Tout sur une ligne ça donnerait :
for fichier in *; do cp ${fichier} "/destination/du/prefix_${fichier}";
done
J'étais certain d'avoir essayé :-(
pour commencer une nouvelle commande ?
ctrl-c
OK.
Aaaarrghhh ! c'est vrai que les noms avec espaces et accentués ça n'a
pas l'air de plaire :-(
ha ben ça...j'avais prévenu.
Pourtant je glisse le fichier sur le terminal qui m'en traduit le nom,
du genre :
Trav Envoye314201
pour :
Trav Envoyé
Ha! j'ai finalement trouvé une espèce de tuto pour le CLI Unix :
<http://fr.wikipedia.org/wiki/Commandes_UNIX>
Bon, je n'arrive quand même pas à transformer en exécutable
ce petit test-démo
L'aide Apple semble dire que c'est possible avec chmod
mais je n'ai peut-être pas compris ni comment faire ni ce qu'était un
"exécutable" ?
Le 9/25/08 6:56 AM, patpro ~ patrick proniewski a écrit :
In article <48daa403$0$967$, SAM wrote:
J'ai essayé avec tout sur une ligne, ça ne fonctionne pas
quel intérêt ?
Comme ça, pour voir. (plus facile à copier-coller ?)
Tout sur une ligne ça donnerait :
for fichier in *; do cp ${fichier} "/destination/du/prefix_${fichier}"; done
J'étais certain d'avoir essayé :-(
pour commencer une nouvelle commande ?
ctrl-c
OK.
Aaaarrghhh ! c'est vrai que les noms avec espaces et accentués ça n'a pas l'air de plaire :-(
ha ben ça...j'avais prévenu.
Pourtant je glisse le fichier sur le terminal qui m'en traduit le nom, du genre : Trav Envoye314201 pour : Trav Envoyé
Ha! j'ai finalement trouvé une espèce de tuto pour le CLI Unix : <http://fr.wikipedia.org/wiki/Commandes_UNIX>
Bon, je n'arrive quand même pas à transformer en exécutable ce petit test-démo L'aide Apple semble dire que c'est possible avec chmod mais je n'ai peut-être pas compris ni comment faire ni ce qu'était un "exécutable" ?
-- sm
Herve
On 25 sep, 09:40, SAM wrote:
Command-line interface ou "Interface de ligne de commande",
C'est sûr que si tu avais nommé ton enfilade "Copier dans un autre dossier un fichier en ligne de commande ?", personne n'aurait compris ;-)
Hervé
On 25 sep, 09:40, SAM <stephanemoriaux.NoAd...@wanadoo.fr.invalid>
wrote:
Command-line interface ou "Interface de ligne de commande",
C'est sûr que si tu avais nommé ton enfilade "Copier dans un autre
dossier un fichier en ligne de commande ?", personne n'aurait
compris ;-)
Command-line interface ou "Interface de ligne de commande",
C'est sûr que si tu avais nommé ton enfilade "Copier dans un autre dossier un fichier en ligne de commande ?", personne n'aurait compris ;-)
Hervé
Nicolas-Michel_REMOVE
SAM wrote:
>> Aaaarrghhh ! c'est vrai que les noms avec espaces et accentués ça n'a >> pas l'air de plaire :-( > > ha ben ça...j'avais prévenu.
Pourtant je glisse le fichier sur le terminal qui m'en traduit le nom, du genre : Trav Envoye314201 pour : Trav Envoyé
soit tu peux déterminer un point commun avec tous ces fichers, soit tu fais faire une liste par l'ordi et tu effacea ceux que tu ne veux pas.
Dans le premier exemple, supposons que tu veux tous les jpg d'un dossier, ça ferait ça :
----------- #!/bin/bash dest="/chemin/du/dossier/de/destination" mkdir -p $dest cd /mon/dossier/source IFS=' ' for i in `find . -name "*.jpg" -maxdepth 1` do cp "$i" "$dest/prefix-$i" done --------------
Dans le cas où tu ne peux pas sélectionner les fichiers d'après un critère "informatisable", tu peux faire une liste comme ceci : ls -1 >~/list.txt
ensuite tu édite le ficher et tu effaces les lignes en trop.
Ensuite dans le script tu remplaces for i in `find . -name "*.jpg" -maxdepth 1` par for i in `cat ~/list.txt`
A présent juste pour expliquer le script ...
#!/bin/bash est la première ligne du script, ça indique avec quel shell le script doit être interprété. On peut activer le debug mode en y ajoutant -vx : #!/bin/bash -vx
dest=.... est le dossier vers lequel tu veux copier tes fichiers
mkdir -p vérifies que la destination existe et sinon ça la crée
cd ça c'est pas très propre, un nom en dur dans un script. Mais je ne voulais pas compliquer.
IFS est la variable qui définit le séparateur. en gros ça sert à ne pas se prendre la tête avec les espace ou les tab dans le nom des fichiers.
for ... apparement tu connais
find ... cherche tous les fichier dont le nom se termine par .jpg dans le dossier courant et sans descendre dans des sous-dossiers
Ha! j'ai finalement trouvé une espèce de tuto pour le CLI Unix : <http://fr.wikipedia.org/wiki/Commandes_UNIX>
Bon, je n'arrive quand même pas à transformer en exécutable ce petit test-démo
sudo chmod +x /le/script
Quel éditeur de texte tu utilises au fait ?
L'aide Apple semble dire que c'est possible avec chmod mais je n'ai peut-être pas compris ni comment faire ni ce qu'était un "exécutable" ?
Il y a un "piège" dans l'interface graphique Apple : En GUI tu peux juste régler les permissions de lecture et d'écriture alors qu'il y en a 3 en réalité, read, write et execute.
ce execute fonctionne différement si on l'applique à un dossier ou à un fichier. Si un dossier est exécutable, on peut l'ouvrir. Si un fichier est exécutable, ça en fait une "application" qu'on peut exécuter.
-- Nicolas Michel
SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> wrote:
>> Aaaarrghhh ! c'est vrai que les noms avec espaces et accentués ça n'a
>> pas l'air de plaire :-(
>
> ha ben ça...j'avais prévenu.
Pourtant je glisse le fichier sur le terminal qui m'en traduit le nom,
du genre :
Trav Envoye314201
pour :
Trav Envoyé
soit tu peux déterminer un point commun avec tous ces fichers, soit tu
fais faire une liste par l'ordi et tu effacea ceux que tu ne veux pas.
Dans le premier exemple, supposons que tu veux tous les jpg d'un
dossier, ça ferait ça :
-----------
#!/bin/bash
dest="/chemin/du/dossier/de/destination"
mkdir -p $dest
cd /mon/dossier/source
IFS='
'
for i in `find . -name "*.jpg" -maxdepth 1`
do
cp "$i" "$dest/prefix-$i"
done
--------------
Dans le cas où tu ne peux pas sélectionner les fichiers d'après un
critère "informatisable", tu peux faire une liste comme ceci :
ls -1 >~/list.txt
ensuite tu édite le ficher et tu effaces les lignes en trop.
Ensuite dans le script tu remplaces
for i in `find . -name "*.jpg" -maxdepth 1`
par
for i in `cat ~/list.txt`
A présent juste pour expliquer le script ...
#!/bin/bash
est la première ligne du script, ça indique avec quel shell le script
doit être interprété. On peut activer le debug mode en y ajoutant -vx :
#!/bin/bash -vx
dest=.... est le dossier vers lequel tu veux copier tes fichiers
mkdir -p vérifies que la destination existe et sinon ça la crée
cd ça c'est pas très propre, un nom en dur dans un script.
Mais je ne voulais pas compliquer.
IFS est la variable qui définit le séparateur.
en gros ça sert à ne pas se prendre la tête avec les espace
ou les tab dans le nom des fichiers.
for ... apparement tu connais
find ... cherche tous les fichier dont le nom se termine par .jpg
dans le dossier courant et sans descendre dans des sous-dossiers
Ha! j'ai finalement trouvé une espèce de tuto pour le CLI Unix :
<http://fr.wikipedia.org/wiki/Commandes_UNIX>
Bon, je n'arrive quand même pas à transformer en exécutable
ce petit test-démo
sudo chmod +x /le/script
Quel éditeur de texte tu utilises au fait ?
L'aide Apple semble dire que c'est possible avec chmod
mais je n'ai peut-être pas compris ni comment faire ni ce qu'était un
"exécutable" ?
Il y a un "piège" dans l'interface graphique Apple :
En GUI tu peux juste régler les permissions de lecture et d'écriture
alors qu'il y en a 3 en réalité, read, write et execute.
ce execute fonctionne différement si on l'applique à un dossier ou à un
fichier. Si un dossier est exécutable, on peut l'ouvrir.
Si un fichier est exécutable, ça en fait une "application" qu'on peut
exécuter.
>> Aaaarrghhh ! c'est vrai que les noms avec espaces et accentués ça n'a >> pas l'air de plaire :-( > > ha ben ça...j'avais prévenu.
Pourtant je glisse le fichier sur le terminal qui m'en traduit le nom, du genre : Trav Envoye314201 pour : Trav Envoyé
soit tu peux déterminer un point commun avec tous ces fichers, soit tu fais faire une liste par l'ordi et tu effacea ceux que tu ne veux pas.
Dans le premier exemple, supposons que tu veux tous les jpg d'un dossier, ça ferait ça :
----------- #!/bin/bash dest="/chemin/du/dossier/de/destination" mkdir -p $dest cd /mon/dossier/source IFS=' ' for i in `find . -name "*.jpg" -maxdepth 1` do cp "$i" "$dest/prefix-$i" done --------------
Dans le cas où tu ne peux pas sélectionner les fichiers d'après un critère "informatisable", tu peux faire une liste comme ceci : ls -1 >~/list.txt
ensuite tu édite le ficher et tu effaces les lignes en trop.
Ensuite dans le script tu remplaces for i in `find . -name "*.jpg" -maxdepth 1` par for i in `cat ~/list.txt`
A présent juste pour expliquer le script ...
#!/bin/bash est la première ligne du script, ça indique avec quel shell le script doit être interprété. On peut activer le debug mode en y ajoutant -vx : #!/bin/bash -vx
dest=.... est le dossier vers lequel tu veux copier tes fichiers
mkdir -p vérifies que la destination existe et sinon ça la crée
cd ça c'est pas très propre, un nom en dur dans un script. Mais je ne voulais pas compliquer.
IFS est la variable qui définit le séparateur. en gros ça sert à ne pas se prendre la tête avec les espace ou les tab dans le nom des fichiers.
for ... apparement tu connais
find ... cherche tous les fichier dont le nom se termine par .jpg dans le dossier courant et sans descendre dans des sous-dossiers
Ha! j'ai finalement trouvé une espèce de tuto pour le CLI Unix : <http://fr.wikipedia.org/wiki/Commandes_UNIX>
Bon, je n'arrive quand même pas à transformer en exécutable ce petit test-démo
sudo chmod +x /le/script
Quel éditeur de texte tu utilises au fait ?
L'aide Apple semble dire que c'est possible avec chmod mais je n'ai peut-être pas compris ni comment faire ni ce qu'était un "exécutable" ?
Il y a un "piège" dans l'interface graphique Apple : En GUI tu peux juste régler les permissions de lecture et d'écriture alors qu'il y en a 3 en réalité, read, write et execute.
ce execute fonctionne différement si on l'applique à un dossier ou à un fichier. Si un dossier est exécutable, on peut l'ouvrir. Si un fichier est exécutable, ça en fait une "application" qu'on peut exécuter.
-- Nicolas Michel
SAM
Le 9/25/08 2:55 PM, Michel Nicolas Alex a écrit :
SAM wrote:
Aaaarrghhh ! c'est vrai que les noms avec espaces et accentués ça n'a pas l'air de plaire :-(
ha ben ça...j'avais prévenu.
Pourtant je glisse le fichier sur le terminal qui m'en traduit le nom, du genre : Trav Envoye314201 pour : Trav Envoyé
soit tu peux déterminer un point commun avec tous ces fichers, soit tu fais faire une liste par l'ordi et tu effacea ceux que tu ne veux pas.
Dans le premier exemple, supposons que tu veux tous les jpg d'un dossier, ça ferait ça :
Je voudrais les fichiers sans suffixe et qui ne sont pas des dossiers.
for i in 'find . -name !"*.*" . -type "file" -maxdepth 1'
c'est bon ?
----------- #!/bin/bash dest="/chemin/du/dossier/de/destination" mkdir -p $dest cd /mon/dossier/source IFS=' ' for i in `find . -name "*.jpg" -maxdepth 1` do cp "$i" "$dest/prefix-$i" done --------------
Dans le cas où tu ne peux pas sélectionner les fichiers d'après un critère "informatisable", tu peux faire une liste comme ceci : ls -1 >~/list.txt
ensuite tu édite le ficher et tu effaces les lignes en trop.
Ensuite dans le script : for i in `cat ~/list.txt`
Bon, je n'arrive quand même pas à transformer en exécutable ce petit test-démo
sudo chmod +x /le/script
Quel éditeur de texte tu utilises au fait ?
BBE (en utf-8)
L'aide Apple semble dire que c'est possible avec chmod mais je n'ai peut-être pas compris ni comment faire ni ce qu'était un "exécutable" ?
Il y a un "piège" dans l'interface graphique Apple :
Ooops! je voulais dire : Aide 'Terminal' d'Apple
En GUI tu peux juste régler les permissions de lecture et d'écriture alors qu'il y en a 3 en réalité, read, write et execute.
j'avais tenté chmod 4000 fichier
-- sm
Le 9/25/08 2:55 PM, Michel Nicolas Alex a écrit :
SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> wrote:
Aaaarrghhh ! c'est vrai que les noms avec espaces et accentués ça n'a
pas l'air de plaire :-(
ha ben ça...j'avais prévenu.
Pourtant je glisse le fichier sur le terminal qui m'en traduit le nom,
du genre :
Trav Envoye314201
pour :
Trav Envoyé
soit tu peux déterminer un point commun avec tous ces fichers, soit tu
fais faire une liste par l'ordi et tu effacea ceux que tu ne veux pas.
Dans le premier exemple, supposons que tu veux tous les jpg d'un
dossier, ça ferait ça :
Je voudrais les fichiers sans suffixe et qui ne sont pas des dossiers.
for i in 'find . -name !"*.*" . -type "file" -maxdepth 1'
c'est bon ?
-----------
#!/bin/bash
dest="/chemin/du/dossier/de/destination"
mkdir -p $dest
cd /mon/dossier/source
IFS='
'
for i in `find . -name "*.jpg" -maxdepth 1`
do
cp "$i" "$dest/prefix-$i"
done
--------------
Dans le cas où tu ne peux pas sélectionner les fichiers d'après un
critère "informatisable", tu peux faire une liste comme ceci :
ls -1 >~/list.txt
ensuite tu édite le ficher et tu effaces les lignes en trop.
Ensuite dans le script :
for i in `cat ~/list.txt`
Bon, je n'arrive quand même pas à transformer en exécutable
ce petit test-démo
sudo chmod +x /le/script
Quel éditeur de texte tu utilises au fait ?
BBE (en utf-8)
L'aide Apple semble dire que c'est possible avec chmod
mais je n'ai peut-être pas compris ni comment faire ni ce qu'était un
"exécutable" ?
Il y a un "piège" dans l'interface graphique Apple :
Ooops! je voulais dire : Aide 'Terminal' d'Apple
En GUI tu peux juste régler les permissions de lecture et d'écriture
alors qu'il y en a 3 en réalité, read, write et execute.
Aaaarrghhh ! c'est vrai que les noms avec espaces et accentués ça n'a pas l'air de plaire :-(
ha ben ça...j'avais prévenu.
Pourtant je glisse le fichier sur le terminal qui m'en traduit le nom, du genre : Trav Envoye314201 pour : Trav Envoyé
soit tu peux déterminer un point commun avec tous ces fichers, soit tu fais faire une liste par l'ordi et tu effacea ceux que tu ne veux pas.
Dans le premier exemple, supposons que tu veux tous les jpg d'un dossier, ça ferait ça :
Je voudrais les fichiers sans suffixe et qui ne sont pas des dossiers.
for i in 'find . -name !"*.*" . -type "file" -maxdepth 1'
c'est bon ?
----------- #!/bin/bash dest="/chemin/du/dossier/de/destination" mkdir -p $dest cd /mon/dossier/source IFS=' ' for i in `find . -name "*.jpg" -maxdepth 1` do cp "$i" "$dest/prefix-$i" done --------------
Dans le cas où tu ne peux pas sélectionner les fichiers d'après un critère "informatisable", tu peux faire une liste comme ceci : ls -1 >~/list.txt
ensuite tu édite le ficher et tu effaces les lignes en trop.
Ensuite dans le script : for i in `cat ~/list.txt`
Bon, je n'arrive quand même pas à transformer en exécutable ce petit test-démo
sudo chmod +x /le/script
Quel éditeur de texte tu utilises au fait ?
BBE (en utf-8)
L'aide Apple semble dire que c'est possible avec chmod mais je n'ai peut-être pas compris ni comment faire ni ce qu'était un "exécutable" ?
Il y a un "piège" dans l'interface graphique Apple :
Ooops! je voulais dire : Aide 'Terminal' d'Apple
En GUI tu peux juste régler les permissions de lecture et d'écriture alors qu'il y en a 3 en réalité, read, write et execute.
j'avais tenté chmod 4000 fichier
-- sm
blanc
SAM wrote:
Va quand même falloir que je trouve un site m'expliquant la syntaxe
man cp man bash -- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> wrote:
Va quand même falloir que je trouve un site m'expliquant la syntaxe
man cp
man bash
--
JiPaul.
/ /--/--//\ Jean-Paul Blanc
|/| L |\ quelquepart en (somewhere in)
/|| = |||\ FRANCE
Va quand même falloir que je trouve un site m'expliquant la syntaxe
man cp man bash -- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
blanc
Michel Nicolas Alex wrote:
> Bon, je n'arrive quand même pas à transformer en exécutable > ce petit test-démo
sudo chmod +x /le/script
Pourquoi donc utiliser un sudo ici ? C'est un script que tu as créé. Donc il t'appartient. Et par suite tu peux modifier ses droits sans probleme, pas besoin d'être superutilisateur.
chmod u+x /le/script
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
Michel Nicolas Alex <Nicolas-Michel_REMOVE@THIS_bluewin.ch> wrote:
> Bon, je n'arrive quand même pas à transformer en exécutable
> ce petit test-démo
sudo chmod +x /le/script
Pourquoi donc utiliser un sudo ici ?
C'est un script que tu as créé. Donc il t'appartient. Et par suite tu
peux modifier ses droits sans probleme, pas besoin d'être
superutilisateur.
chmod u+x /le/script
--
JiPaul.
/ /--/--//\ Jean-Paul Blanc
|/| L |\ quelquepart en (somewhere in)
/|| = |||\ FRANCE
> Bon, je n'arrive quand même pas à transformer en exécutable > ce petit test-démo
sudo chmod +x /le/script
Pourquoi donc utiliser un sudo ici ? C'est un script que tu as créé. Donc il t'appartient. Et par suite tu peux modifier ses droits sans probleme, pas besoin d'être superutilisateur.
chmod u+x /le/script
-- JiPaul. / /--/--// Jean-Paul Blanc |/| L | quelquepart en (somewhere in) /|| = ||| FRANCE
SAM
Le 9/28/08 9:14 AM, JiPaul a écrit :
SAM wrote:
Va quand même falloir que je trouve un site m'expliquant la syntaxe
man cp man bash
J'ai dit "expliquant" (à moi qui suis pas doué)
pas baragouiner du charabia en pas français :-(
et puis ... où elle est la syntaxe là ? ex: for truc in file:/dossier/fichier if 'mot'== truc do ... etc etc ...
M'enfin wikipedia peut déjà un peu me guider.
Merci de ton intervention
-- sm
Le 9/28/08 9:14 AM, JiPaul a écrit :
SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> wrote:
Va quand même falloir que je trouve un site m'expliquant la syntaxe
man cp
man bash
J'ai dit "expliquant" (à moi qui suis pas doué)
pas baragouiner du charabia en pas français :-(
et puis ... où elle est la syntaxe là ?
ex:
for truc in file:/dossier/fichier if 'mot'== truc do ... etc etc ...