Pagina 1 di 1
Automator replicare file in più cartelle
Inviato: mar, 27 mar 2018 12:58
da Pietrod
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
Re: Automator replicare file in più cartelle
Inviato: mar, 27 mar 2018 13:06
da LeoTM
Pietrod 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
più semplicemente potrebbe bastare anche uno scriptino bash
Codice: Seleziona tutto
#!/bin/sh
cp /sourcefolder/* /myfolder1/
cp /sourcefolder/* /myfolder2/
.
.
.
questa è la versione brutale, si può sofisticarla come meglio si crede.
ps: e vai a presentarti altrimenti ciccia che ti diamo una mano.
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Re: Automator replicare file in più cartelle
Inviato: mar, 27 mar 2018 13:16
da Hammarby
Ti crei uno scriptino : apri un editor e crea un file chiamandolo copia_multipla.sh dentro la directory dove sono i tuoi sette files
Ti segni la directory di partenza dove sono tutte le tue cartelle di destinazione ed inoltre devi conoscere una sottostringa che appartenga a tutte le cartelle
Fatto questo modifichi il codice inserendo queste informazioni e lo lanci
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
Esempio 1 : le tue cartelle sono tutte allo stesso livello, con i nomi a,b,c etc. , si trovano in /home/pippo/cartelle ed i tuoi files si chiamano file1 file2 ... file7
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
Esempio 2 : le tue cartelle sono tutte allo stesso livello, con i nomi a,b,c etc. , ognuna di loro ha dentro una directory che si chiama "destinazione", si trovano in /home/pippo/cartelle ed i tuoi files si chiamano file1 file2 ... file7
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
Re: Automator replicare file in più cartelle
Inviato: mar, 27 mar 2018 14:10
da Pietrod
Grazie ragazzi siete gentilissimi,
ho provato ad applicare quello che mi avete scritto ma essendo ignorante in programmazione e il risultato è un'errore, ho allegato la schermata,
Re: Automator replicare file in più cartelle
Inviato: mar, 27 mar 2018 14:33
da Hammarby
Prova a mettere /Volumes/... /Backstage tra doppi apici.
Le stringhe con gli spazi non piacciono troppo a bash
Re: Automator replicare file in più cartelle
Inviato: mar, 27 mar 2018 14:40
da Pietrod
Hammarby ha scritto:Prova a mettere /Volumes/... /Backstage tra doppi apici.
Le stringhe con gli spazi non piacciono troppo a bash
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"
sembra si blocchi già li
Re: Automator replicare file in più cartelle
Inviato: mar, 27 mar 2018 14:54
da LeoTM
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
conviene mettere tra doppi apici sia la cartella dove eseguire il find che il pattern da cercare.
Re: Automator replicare file in più cartelle
Inviato: mar, 27 mar 2018 15:20
da Pietrod
LeoTM ha scritto: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
conviene mettere tra doppi apici sia la cartella dove eseguire il find che il pattern da cercare.
niente.. neanche così
Re: Automator replicare file in più cartelle
Inviato: mar, 27 mar 2018 15:34
da Hammarby
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 esempio
Codice: Seleziona tutto
#!/bin/sh
for i in $( jot 0 10 ); do echo "output: $i"; done
Copia il codice sopra in un file prova.sh e poi eseguilo da terminale scrivendo
Poi prova ancora con questo esempio
Codice: Seleziona tutto
max=10
for i in `eval echo {2..$max}`
do
echo $i
done
Re: Automator replicare file in più cartelle
Inviato: mar, 27 mar 2018 15:51
da Pietrod
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 esempio
Codice: Seleziona tutto
#!/bin/sh
for i in $( jot 0 10 ); do echo "output: $i"; done
Copia il codice sopra in un file prova.sh e poi eseguilo da terminale scrivendo
Poi prova ancora con questo esempio
Codice: Seleziona tutto
max=10
for i in `eval echo {2..$max}`
do
echo $i
done
No niente, scusate sicuramente è colpa della mia ignoranza.
Ci rinuncio