Pagina 1 di 6

mv oppure cp tra 2 filesystem diversi??

Inviato: gio 24 feb 2011, 13:59
da danix
Ciao a tutti,
è da un secolo che non scrivo sul forum, e torno oggi con una domanda.. Devo copiare una gran quantità di files di dimensioni variabili (da pochi KB a centinaia di MB), la copia deve avvenire tra un disco sata e un volume virtuale creato con lvm, quindi filesystem e dischi diversi...

Dopo questa doverosa premessa, la domanda è: è più veloce cp o mv in questo caso?? E' chiaro che non mi interessa mantenere i files sul disco di origine, quindi userei cp solo nel caso in cui fosse più veloce...


Che mi dite??
Grazie mille in anticipo!! :D

Re: mv oppure cp tra 2 filesystem diversi??

Inviato: gio 24 feb 2011, 14:23
da masalapianta
è più veloce cp ma di uno sputo, soltanto perchè dopo aver copiato i file non deve fare le unlink() come fa mv; quindi usa mv.

Re: mv oppure cp tra 2 filesystem diversi??

Inviato: gio 24 feb 2011, 14:24
da danix
grazie mille ;)

Re: mv oppure cp tra 2 filesystem diversi??

Inviato: gio 24 feb 2011, 18:58
da Mario Vanoni
Preferisco cp, se succede un errore con mv ...

Re: mv oppure cp tra 2 filesystem diversi??

Inviato: gio 24 feb 2011, 19:29
da slux
Concordo con Mario,a cancellare siamo sempre in tempo.... ;)

Re: mv oppure cp tra 2 filesystem diversi??

Inviato: ven 25 feb 2011, 10:27
da Trotto@81
Concordo con Mario e slux.

Re: mv oppure cp tra 2 filesystem diversi??

Inviato: ven 25 feb 2011, 11:04
da masalapianta
Mario Vanoni ha scritto:Preferisco cp, se succede un errore con mv ...
che tipo di errore? mv prima effettua una copia (in caso di fs differenti, altrimenti fa un hard link) e se non ci son stati errori fa l'unlink; ovviamente non fa un checksum dei file (o addirittura un confronto bit a bit), ma l'unico modo per aver problemi è che il kernel o le libc mentano sul risultato delle write, il che, a meno di un grosso bug del kernel o delle libc (di cui ci si sarebbe gia accorti), è impossibile.

Re: mv oppure cp tra 2 filesystem diversi??

Inviato: ven 25 feb 2011, 11:08
da Trotto@81
masalapianta ha scritto:
Mario Vanoni ha scritto:Preferisco cp, se succede un errore con mv ...
che tipo di errore? mv prima effettua una copia (in caso di fs differenti, altrimenti fa un hard link) e se non ci son stati errori fa l'unlink; ovviamente non fa un checksum dei file (o addirittura un confronto bit a bit), ma l'unico modo per aver problemi è che il kernel o le libc mentano sul risultato delle write, il che, a meno di un grosso bug del kernel o delle libc (di cui ci si sarebbe gia accorti), è impossibile.
Sei andato troppo nello specifico e non serviva, se per sbaglio si interrompe la copia, vuoi per il fs di destinazione pieno o per un black out, il file lasciato a metà viene perso, con cp inizi da capo e via.

Re: mv oppure cp tra 2 filesystem diversi??

Inviato: ven 25 feb 2011, 11:17
da masalapianta
Trotto@81 ha scritto:
masalapianta ha scritto:
Mario Vanoni ha scritto:Preferisco cp, se succede un errore con mv ...
che tipo di errore? mv prima effettua una copia (in caso di fs differenti, altrimenti fa un hard link) e se non ci son stati errori fa l'unlink; ovviamente non fa un checksum dei file (o addirittura un confronto bit a bit), ma l'unico modo per aver problemi è che il kernel o le libc mentano sul risultato delle write, il che, a meno di un grosso bug del kernel o delle libc (di cui ci si sarebbe gia accorti), è impossibile.
Sei andato troppo nello specifico e non serviva,
perchè non serviva?
se per sbaglio si interrompe la copia, vuoi per il fs di destinazione pieno o per un black out, il file lasciato a metà viene perso, con cp inizi da capo e via.
eh? con mv nei casi da te descritti non viene fatto l'unlink del file da copiare, quindi non perdi nulla (ma se tu avessi letto quel che ho scritto sopra, gia lo sapresti)

Re: mv oppure cp tra 2 filesystem diversi??

Inviato: ven 25 feb 2011, 11:36
da Toni
Offtopic: solo chi ha la conoscenza può permettersi un pizzico di superbia =D> @ masa
@ trotto , devi ripassare un po' , non sei ancora pronto :lol:
ciao

Re: mv oppure cp tra 2 filesystem diversi??

Inviato: ven 25 feb 2011, 11:40
da Trotto@81
Io non ho detto che sia errato, parlo per esperienza, con mv al di là di tutto ho perso qualche file in passato, uso solo cp per grossi spostamenti di file, non vedo superbia nella mia risposta, il tuo intervento è fuori luogo, non servono avvocati per una normale conversazione.

Re: mv oppure cp tra 2 filesystem diversi??

Inviato: ven 25 feb 2011, 11:43
da targzeta
Anche io so, come masalapianta, che il file non viene cancellato se non è arrivato sano e salvo a destinazione.

Tanto è vero che potete da voi stessi fare una prova. Iniziate a spostate un file (di grosse dimensioni) da un filesystem ad un altro (così perdete più tempo) e poi ammazzate 'mv' con 'killall -s 9 mv' (così non perdete tempo a trovare il PID esatto) e vedete cosa succede. Ricordo che il SIGKILL ('-s 9' di killall) non è intercettabile e quindi 'mv' viene ucciso impedendogli di terminare correttamente. Alla fine troverete il vostro file iniziale intatto e un altro parziale dall'altra parte.

Emanuele

Re: mv oppure cp tra 2 filesystem diversi??

Inviato: ven 25 feb 2011, 12:40
da Vic Steele
It first uses some of the same code that's used by `cp -a'
to copy the requested directories and files, then (assuming the copy
succeeded) it removes the originals. If the copy fails, then the part
that was copied to the destination partition is removed. If you were
to copy three directories from one partition to another and the copy of
the first directory succeeded, but the second didn't, the first would
be left on the destination partition and the second and third would be
left on the original partition.
Fonte: coreutils.
Faccio i complimenti alla spaventosa conoscenza di masalapianta.

Re: mv oppure cp tra 2 filesystem diversi??

Inviato: ven 25 feb 2011, 12:52
da navajo
spina ha scritto:Anche io so, come masalapianta, che il file non viene cancellato se non è arrivato sano e salvo a destinazione.

Tanto è vero che potete da voi stessi fare una prova. Iniziate a spostate un file (di grosse dimensioni) da un filesystem ad un altro (così perdete più tempo) e poi ammazzate 'mv' con 'killall -s 9 mv' (così non perdete tempo a trovare il PID esatto) e vedete cosa succede. Ricordo che il SIGKILL ('-s 9' di killall) non è intercettabile e quindi 'mv' viene ucciso impedendogli di terminare correttamente. Alla fine troverete il vostro file iniziale intatto e un altro parziale dall'altra parte.

Emanuele
Ho fatto la prova con un flle video divx. copiato a parte per la prova.
Risultato: è proprio cosi..
Devo dire che ero peprlesso, perchè una volta ho perso davvero qualche file, ma ho usato taglia e incolla da GUI (Konqueror per l esattezza).
Masala non si batte :D

Re: mv oppure cp tra 2 filesystem diversi??

Inviato: ven 25 feb 2011, 13:02
da targzeta
Offtopic: :lol: ragazzi, scusate l'offtopic ma tutti questi complimenti a masalapianta mi hanno fatto venire in mente un ricordo d'infanzia.

Emanuele