Moderatore: ModiMaccanici
più semplicemente potrebbe bastare anche uno scriptino bashPietrod ha scritto:Ciao, è il mio primo post, io avrei bisogno di copiare dei file (7 per l'esattezza) sempre uguali,
in una serie di cartelle (più di 200),
c'è un modo per evitare di fare mela+V più di 200 volte?
perché anche su automator devo specificare la cartella di destinazione non posso aggiungere per tutte le sottocartelle.
Grazie
Codice: Seleziona tutto
#!/bin/sh
cp /sourcefolder/* /myfolder1/
cp /sourcefolder/* /myfolder2/
.
.
.
Codice: Seleziona tutto
#/bin/bash
for file in $(find /home/w* -name public_html -type d)
do
cp file1 ${file}
cp file2 ${file}
cp file3 ${file}
cp file4 ${file}
cp file5 ${file}
cp file6 ${file}
cp file7 ${file}
done
Codice: Seleziona tutto
#/bin/bash
for file in $(find /home/pippo/cartelle -name * -type d)
do
cp file1 ${file}
cp file2 ${file}
cp file3 ${file}
cp file4 ${file}
cp file5 ${file}
cp file6 ${file}
cp file7 ${file}
done
Codice: Seleziona tutto
#/bin/bash
for file in $(find /home/pippo/cartelle/* -name destinazione -type d)
do
cp file1 ${file}
cp file2 ${file}
cp file3 ${file}
cp file4 ${file}
cp file5 ${file}
cp file6 ${file}
cp file7 ${file}
done
ho tolto gli spazi (anche nel nome delle cartelle ovviamente) ho provato anche con gli apici, ma non cambia niente, infatti l'edito mi evidenzi la parola "for"Hammarby ha scritto:Prova a mettere /Volumes/... /Backstage tra doppi apici.
Le stringhe con gli spazi non piacciono troppo a bash
Codice: Seleziona tutto
for file in $(find "source folder/whatever/some more names" -name "somenamepattern*" -type d (o f, dipende se vuoi directory o file))
do
.
.
.
done
niente.. neanche cosìLeoTM ha scritto:conviene mettere tra doppi apici sia la cartella dove eseguire il find che il pattern da cercare.Codice: Seleziona tutto
for file in $(find "source folder/whatever/some more names" -name "somenamepattern*" -type d (o f, dipende se vuoi directory o file)) do . . . done
Codice: Seleziona tutto
#!/bin/sh
for i in $( jot 0 10 ); do echo "output: $i"; done
Codice: Seleziona tutto
/bin/sh ./prova.sh
Codice: Seleziona tutto
max=10
for i in `eval echo {2..$max}`
do
echo $i
done
No niente, scusate sicuramente è colpa della mia ignoranza.Hammarby ha scritto:Il problema è il tuo editor,
questo non è linguaggio C ma linguaggio shell e quello che ti evidenzia non è un errore in shell.
Potresti provare ad usare direttamente la shell /bin/sh come in questo esempioCopia il codice sopra in un file prova.sh e poi eseguilo da terminale scrivendoCodice: Seleziona tutto
#!/bin/sh for i in $( jot 0 10 ); do echo "output: $i"; done
Poi prova ancora con questo esempioCodice: Seleziona tutto
/bin/sh ./prova.sh
Codice: Seleziona tutto
max=10 for i in `eval echo {2..$max}` do echo $i done
Visitano il forum: Apple [Bot] e 3 ospiti