Come copiare una directory da un disco rigido all'altro con ogni singolo file?


17

Ho una cartella che ho appena recuperato seduto su:

/media/sdc1/Pictures

con un MAZZO di sottodirectory e file di cui ho bisogno.

Voglio copiarli in una cartella su:

/media/sdb1/Pictures

Quale comando devo usare nel terminale per assicurarmi che ciò accada? So che c'è il cpcomando. Ma è la scelta migliore? E se sì, quali opzioni dovrei usare per assicurarmi di ottenere ogni singola directory e file?

Risposte:


21

Userei rsync per questo in modo che se si verifica un errore (o è necessario interrompere la copia) a metà strada, è possibile riprenderlo facilmente in seguito, senza dover ricopiare tutto.

rsync -av /media/sdc1/Pictures/ /media/sdb1/Pictures/

3
Rimuoverei il *poiché ometterà i dotfile al primo livello. Potrebbe anche causare il superamento del limite ARG_MAX.
geirha,

@geirha buon punto. modificato.
amc,

12

cp -r /media/sdc1/Pictures/* /media/sdb1/Pictures/some_dir

  • Il -rè ricorsiva, leggere la pagina man ...
  • Con /media/sdc1/Pictures/*l'asterisco è copiare tutto il contenuto di /media/sdc1/Pictures/, ma non la directory principale stessa.
  • Some_dir di /media/sdb1/Pictures/some_dirè dove vuoi metterlo.

copieranno anche dotfile e dotdir?
farinspace,

1

Se hai bisogno di un'immagine esatta, usa il comando dd if=(path) of=(path)


4
Attenzione, questo comando potrebbe uccidere completamente il tuo computer se usato in modo errato
MikeSchem,

Non puoi copiare directory con dd!
mook765,
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.