[Risolto] aiuto per comando terminale di copia ricorsiva
- Marly
- Prode Principiante
- Messaggi: 205
- Iscrizione: sabato 30 giugno 2007, 22:32
- Desktop: Gnome/Unity
- Distribuzione: Ubuntu 12.04 64bit
[Risolto] aiuto per comando terminale di copia ricorsiva
domanda niubba:
esiste un comando che copia ricorsivamente tutti i file con una certa estensione presenti in una directory e in tutte le sue figlie?
ho pensato a qualcosa del tipo cp -r *.estensione destinazione, ma prende solo i file nella cartella genitore, e non scende nelle sottodirectory.
esiste un comando che copia ricorsivamente tutti i file con una certa estensione presenti in una directory e in tutte le sue figlie?
ho pensato a qualcosa del tipo cp -r *.estensione destinazione, ma prende solo i file nella cartella genitore, e non scende nelle sottodirectory.
Ultima modifica di Marly il domenica 28 settembre 2008, 0:14, modificato 1 volta in totale.
- eNry92
- Entusiasta Emergente

- Messaggi: 1323
- Iscrizione: giovedì 4 ottobre 2007, 8:47
- Località: Caserta
Re: aiuto per comando terminale di copia ricorsiva
mi sono perso alla figlia ::) ::)
ps
bell'avatar
ps
bell'avatar
- Marly
- Prode Principiante
- Messaggi: 205
- Iscrizione: sabato 30 giugno 2007, 22:32
- Desktop: Gnome/Unity
- Distribuzione: Ubuntu 12.04 64bit
Re: aiuto per comando terminale di copia ricorsiva
OK provo a rispiegare
Parto da una cartella madre (es la home), e voglio copiare tutte le immagini contenute in questa ed in tutte le sue sottocartelle (quindi file con estensione jpg).
Usando cp -r si ottiene un effetto simile, nel senso che copia tutto l'albero delle directory a partire da quella indicata. Se però specifico un formato (es cp -r *.jpg) si ferma alla cartella madre, senza entrare nelle sottocartelle.
Parto da una cartella madre (es la home), e voglio copiare tutte le immagini contenute in questa ed in tutte le sue sottocartelle (quindi file con estensione jpg).
Usando cp -r si ottiene un effetto simile, nel senso che copia tutto l'albero delle directory a partire da quella indicata. Se però specifico un formato (es cp -r *.jpg) si ferma alla cartella madre, senza entrare nelle sottocartelle.
- Re.in.stallo
- Scoppiettante Seguace

- Messaggi: 646
- Iscrizione: martedì 20 dicembre 2005, 23:50
Re: aiuto per comando terminale di copia ricorsiva
prova così (cambiando le directory e l'estensione se necessario, facendo attenzione a lasciare lo \; alla fine):
Saluti, 
Gabriele
Codice: Seleziona tutto
find /cartella/di/partenza -name "*.jpg" -exec cp '{}' /cartella/di/destinazione \;Gabriele
Sto diventando un allitterato, non riecso più a scrviere senza errori con la tatsiera...
- Marly
- Prode Principiante
- Messaggi: 205
- Iscrizione: sabato 30 giugno 2007, 22:32
- Desktop: Gnome/Unity
- Distribuzione: Ubuntu 12.04 64bit
Re: aiuto per comando terminale di copia ricorsiva
Fantastico, funziona! 
Grazie mille
PS:
avresti solo voglia di spiegarmi la sintassi della seconda parte del comando? (da -exec per intederci)
Non capisco le graffe, servono per prendere l'output del comando precedente?
Grazie mille
PS:
avresti solo voglia di spiegarmi la sintassi della seconda parte del comando? (da -exec per intederci)
Non capisco le graffe, servono per prendere l'output del comando precedente?
Ultima modifica di Marly il domenica 28 settembre 2008, 0:17, modificato 1 volta in totale.
- Re.in.stallo
- Scoppiettante Seguace

- Messaggi: 646
- Iscrizione: martedì 20 dicembre 2005, 23:50
Re: aiuto per comando terminale di copia ricorsiva
-exec è un'opzione di find che ti permette di eseguire un dato comando ogni volta che trova un file (che risponda ai requisiti della ricerca). Nel tuo caso il comando è cp. Le graffe servono per passare, di volta in volta, a questo secondo comando il nome del file "trovato" da find:Marly ha scritto: Non capisco le graffe, servono per prendere l'output del comando precedente?
Saluti,man find ha scritto: -exec command ;
Execute command; true if 0 status is returned. All following
arguments to find are taken to be arguments to the command until
an argument consisting of ‘;’ is encountered. The string ‘{}’
is replaced by the current file name being processed everywhere
it occurs in the arguments to the command, not just in arguments
where it is alone, as in some versions of find. Both of these
constructions might need to be escaped (with a ‘\’) or quoted to
protect them from expansion by the shell. See the EXAMPLES sec‐
tion for examples of the use of the ‘-exec’ option. The speci‐
fied command is run once for each matched file. The command is
executed in the starting directory. There are unavoidable
security problems surrounding use of the -exec option; you
should use the -execdir option instead.
Gabriele
Sto diventando un allitterato, non riecso più a scrviere senza errori con la tatsiera...
Chi c’è in linea
Visualizzano questa sezione: Bing [Bot] e 9 ospiti