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. :D

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

Codice: Seleziona tutto

/bin/sh ./prova.sh
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

Codice: Seleziona tutto

/bin/sh ./prova.sh
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