Voglio copiare una directory da un posto all'altro tramite la riga di comando


127

Voglio copiare una directory da un posto a un'altra cartella.

sudo cpè il comando, ma dopo cosa devo digitare? La destinazione o la fonte prima?


10
Does man cpaiutare?
Portablejim

Risposte:


198

La -abandiera è probabilmente quello che stai cercando:

cp -a /path/from /path/to

Il -aflag attiva il comportamento ricorsivo (che può essere eseguito anche con il -Rflag) e tenterà anche di conservare metadati come proprietà dei file, autorizzazioni, timestamp, collegamenti, ecc.

Dovresti utilizzarlo solo sudose stai copiando in una posizione non di proprietà dell'utente corrente, se l'utente corrente non dispone delle autorizzazioni di lettura per i file da copiare o se desideri conservare la proprietà sui file non di proprietà dell'attuale utente.


4
inoltre, come regola generale, è sempre così [command] [source] [destination]. Questo vale per mv, cp, ren.
Vineet Menon,

1
@VineetMenon Probabilmente intendi mv, no ren.
jcollado,

@jcollado: ho già aggiunto mv!!
Vineet Menon,

@VineetMenon Sì, hai ragione, non ho visto che mvera già nella lista. Ad ogni modo, il mio punto era che, per quanto ne so, non vi è alcun rencomando (a meno che tu non abbia un alias o qualcosa impostato).
jcollado,

1
@jcollado: ahah ... quello era il mio alias per rename...: D
Vineet Menon

28

Se si desidera copiare la directory, utilizzare il comando seguente:

sudo cp -R Source_Folder Destination_Folder

Questo comando può anche essere usato per copiare i file, semplicemente rimuovendo "-R" che viene usato per copiare la struttura ricorsiva delle cartelle interne (se ce ne sono nel percorso Source_Folder che abbiamo menzionato.)

Un altro esempio:

sudo cp -R /var/www/* /home/test_user/

Non esitate a lasciare un commento in caso di problemi.


7

Per la cartella di copia tramite terminale, è possibile utilizzare

cp -a /source/. /dest/

L'opzione -a è un'opzione ricorsiva migliorata, che conserva tutti gli attributi di file e conserva anche i collegamenti simbolici.

Il . alla fine del percorso di origine è una sintassi cp specifica che consente di copiare tutti i file e le cartelle, inclusi quelli nascosti.

Un sostituto è rsync

rsync -r source/ destination

2

Penso che il modo migliore sia usare il gksu nautiluscomando e puoi copiare tutto quello che vuoi con la GUI comune come al solito.


1
Ciò presuppone che tu stia utilizzando una GUI e non una CLI.
Phill Healey,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.