comando copy, escludere una sottocartella.

10 risposte [Ultimo messaggio]
Ritratto di fsf_dipendente
Offline
Geek
Iscritto: 14/03/2007
Messaggi: 181

Vorrei copiare la cartella /pippo, escludendo la sottocartella /pippo/pluto.

Come faccio?
Grazie

opensuse 11.4
kernel 2.6.37.1-1.2-desktop
kde 4.6

Ritratto di Romolo
Romolo
(Junior)
Offline
Junior
Iscritto: 07/06/2006
Messaggi: 36

Ciao,
il comando è questo
cp /pippo/* /nomedirectory
ciao

Ritratto di furlan
furlan
(Geek)
Offline
Geek
Iscritto: 14/10/2004
Messaggi: 147

Il comando dato da Romolo ovviamente non copia nessun'altra sottocartella.
Se tu volessi copiare tutto tranne una sotto cartella allora avresti due possibilità:
- Crearti uno script che cicla all'interno della cartella pippo e in tutte le sotto cartella e copia solo quello che ti interessa;
- Oppure usare un metodo quick and dirty, cioè copi tutto in modo ricorsivo "cp -r ../pippo/ .../dest/" e poi rimuovi in modo brutale la sotto cartella pluto con "rm -rf .../dest/pluto".

Gianluca

Gianluca - furlan
www.morolandia.wordpress.com

Ritratto di doc_pluto
doc_pluto
(Guru)
Offline
Guru
Iscritto: 08/02/2007
Messaggi: 871

furlan ha scritto:

Il comando dato da Romolo ovviamente non copia nessun'altra sottocartella.
Se tu volessi copiare tutto tranne una sotto cartella allora avresti due possibilità:
- Crearti uno script che cicla all'interno della cartella pippo e in tutte le sotto cartella e copia solo quello che ti interessa;
- Oppure usare un metodo quick and dirty, cioè copi tutto in modo ricorsivo "cp -r ../pippo/ .../dest/" e poi rimuovi in modo brutale la sotto cartella pluto con "rm -rf .../dest/pluto".

Gianluca

pensavo alla seconda che hai detto, molto più intuitiva..

solo un appunto: se la cartella che non si vuole copiare è molto grande o continee file molto grossi, l'operazione di copia sarebbe di conseguenza molto lunga.. a quel punto forse è più conveniente crearsi uno scriptino..

Hardware: MB:P5E3_Deluxe - CPU:Core2Duo E8400 3.0GHz - RAM:Kingstone_2Gb_DDR3 - Video:GeForce9600GT/PCI/SSE2 - HD: 2x WDCaviarBlue 1TB
--------------------------------
Software: SO:openSuSE 12.1 - ARCH:64bit - DE:Gnome3 - DriverVideo:Ufficiali Nvidia

Ritratto di Gollum
Gollum
(Collaboratore)
Offline
Collaboratore
Iscritto: 03/03/2005
Messaggi: 802

E una cosa aquesto modo?

rsync -ar --exclude=Pippo/* Pippo ~/Destinazione/

Non dico che sia meglio ma forse evita di farsi lo script.

Desktop DELL XPS8100 => openSUSE_12.2 => KDE 4.10 => Core i7 => 3.4.28-2.20 => Nvidia GT220
Notebook Sony Vaio VPPCA =>openSUSE_12.2 => KDE 4.10 => Core i5 => 3.4.28-2.20 => AMD HD 6470M

Ritratto di fsf_dipendente
Offline
Geek
Iscritto: 14/03/2007
Messaggi: 181

voglio copiare tutti i file e cartelle in /pippo tranne la cartella /pippo/pluto.
1)lo script non fa al mio caso, perche' il contenutto di /pippo varia di volta in volta
2)/pippo/pluto e' troppo grande, vorrei evitare di copiarla.

quando ho tempo provero' con
rsync -ar --exclude=pippo/pluto pippo ~/Destinazione/

Cmq il fatto che il comando "cp" non abbia l'opzione "exclude" lo rende meno potente di quel che pensavo.
In rete vidi l'uso combinto (|) di "cp" ed "egrep". Idee in proposito?

opensuse 11.4
kernel 2.6.37.1-1.2-desktop
kde 4.6

Ritratto di doc_pluto
doc_pluto
(Guru)
Offline
Guru
Iscritto: 08/02/2007
Messaggi: 871

fsf_dipendente ha scritto:

voglio copiare tutti i file e cartelle in /pippo tranne la cartella /pippo/pluto.
1)lo script non fa al mio caso, perche' il contenutto di /pippo varia di volta in volta
2)/pippo/pluto e' troppo grande, vorrei evitare di copiarla.

quando ho tempo provero' con
rsync -ar --exclude=pippo/pluto pippo ~/Destinazione/

Cmq il fatto che il comando "cp" non abbia l'opzione "exclude" lo rende meno potente di quel che pensavo.
In rete vidi l'uso combinto (|) di "cp" ed "egrep". Idee in proposito?

prova co nun comando simile a questo:
cp -R $(ls -r |grep -v noncopia) $HOME/PROVACOPIA

ls lista il contenuto
grep -v filtra il listato, -v inverte mostrando quello che NON corrisponde al filtro
$() prende il risulato delle operazioni all'interno e lo passa a cp
cp -R copia ricorsiva

ho fatto una parova ed effettivamente nella mia cartella $HOME/PROVACOPIA non era stata copiata la cartella noncopia.

nel tuo caso potrebbe essere:
cp -R $(ls -r |grep -v pluto) destinazione
da eseguire nella cartella contenente pluto.

Hardware: MB:P5E3_Deluxe - CPU:Core2Duo E8400 3.0GHz - RAM:Kingstone_2Gb_DDR3 - Video:GeForce9600GT/PCI/SSE2 - HD: 2x WDCaviarBlue 1TB
--------------------------------
Software: SO:openSuSE 12.1 - ARCH:64bit - DE:Gnome3 - DriverVideo:Ufficiali Nvidia

Ritratto di fsf_dipendente
Offline
Geek
Iscritto: 14/03/2007
Messaggi: 181

era proprio quello che cercavo.

opensuse 11.4
kernel 2.6.37.1-1.2-desktop
kde 4.6

Ritratto di doc_pluto
doc_pluto
(Guru)
Offline
Guru
Iscritto: 08/02/2007
Messaggi: 871

fsf_dipendente ha scritto:

era proprio quello che cercavo.

ottimo.

Hardware: MB:P5E3_Deluxe - CPU:Core2Duo E8400 3.0GHz - RAM:Kingstone_2Gb_DDR3 - Video:GeForce9600GT/PCI/SSE2 - HD: 2x WDCaviarBlue 1TB
--------------------------------
Software: SO:openSuSE 12.1 - ARCH:64bit - DE:Gnome3 - DriverVideo:Ufficiali Nvidia

Ritratto di dragoncello
dragoncello
(Collaboratore)
Offline
Collaboratore
Iscritto: 16/07/2005
Messaggi: 2741

doc_pluto ha scritto:

fsf_dipendente ha scritto:

era proprio quello che cercavo.

ottimo.

Bravo Doc_pluto
Wink

SUSE Tumbleweed- kernel-5.7.5.1-1- kde-plasma-5.19.2.1- Intel Core i7 Asus P9x79 pro GeForce GTX 560-driver Nvidia-390.132.14- SSD samsung 850 pro 512 gb http://opensuse-community.org/

Ritratto di Templare
Templare
(Collaboratore)
Offline
Collaboratore
Iscritto: 28/10/2011
Messaggi: 747

doc_pluto ha scritto:

fsf_dipendente ha scritto:

voglio copiare tutti i file e cartelle in /pippo tranne la cartella /pippo/pluto.
1)lo script non fa al mio caso, perche' il contenutto di /pippo varia di volta in volta
2)/pippo/pluto e' troppo grande, vorrei evitare di copiarla.

quando ho tempo provero' con
rsync -ar --exclude=pippo/pluto pippo ~/Destinazione/

Cmq il fatto che il comando "cp" non abbia l'opzione "exclude" lo rende meno potente di quel che pensavo.
In rete vidi l'uso combinto (|) di "cp" ed "egrep". Idee in proposito?

prova co nun comando simile a questo:
cp -R $(ls -r |grep -v noncopia) $HOME/PROVACOPIA

ls lista il contenuto
grep -v filtra il listato, -v inverte mostrando quello che NON corrisponde al filtro
$() prende il risulato delle operazioni all'interno e lo passa a cp
cp -R copia ricorsiva

ho fatto una parova ed effettivamente nella mia cartella $HOME/PROVACOPIA non era stata copiata la cartella noncopia.

nel tuo caso potrebbe essere:
cp -R $(ls -r |grep -v pluto) destinazione
da eseguire nella cartella contenente pluto.

Perfetto. Vai così Pluto!

Assemblato 1: Phenom II X4 965 Black Edition + AMD Radeon HD 5770 + Scheda Madre Asus Crosshair IV Formula + Scheda Audio Asus Xonar D2X. Sistema Windows 7 Ultimate 64 Bit
Assemblato 3: Intel Core i3 3220 + nVIDIA Geforce 640 GT. Sistema openSUSE 13.1 64 bit GNOME