Comment copier un répertoire d'un disque dur à un autre avec chaque fichier?

17

J'ai un dossier que j'ai récupéré heureusement assis:

/media/sdc1/Pictures

avec un tas de sous-répertoires et de fichiers dont j'ai besoin.

Je veux les copier dans un dossier sur:

/media/sdb1/Pictures

Quelle commande dois-je utiliser dans le terminal pour m'assurer que cela se produit? Je sais qu'il y a la cpcommande. Mais est-ce le meilleur choix? Et si oui, quelles options dois-je utiliser pour m'assurer d'obtenir chaque répertoire et fichier?

wardr
la source

Réponses:

21

J'utiliserais rsync pour cela afin que s'il y a une erreur (ou si vous devez arrêter la copie) à mi-chemin, vous pouvez facilement reprendre plus tard, sans avoir à tout recopier.

rsync -av /media/sdc1/Pictures/ /media/sdb1/Pictures/
amc
la source
3
Je supprimerais le *car il omettra les fichiers dot au premier niveau. Cela peut également entraîner un dépassement de la limite ARG_MAX.
geirha
@geirha bon point. édité.
amc
12

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

  • C'est -rrécursif, lisez la page de manuel ...
  • Avec /media/sdc1/Pictures/*l'astérisque est de copier tout le contenu de /media/sdc1/Pictures/, mais pas le répertoire parent lui - même.
  • Le some_dir de /media/sdb1/Pictures/some_direst l'endroit où vous voulez le mettre.
sage
la source
est-ce que cela copiera les fichiers et les fichiers dot?
farinspace
1

Si vous avez besoin d'une image exacte, utilisez la commande dd if=(path) of=(path)

RGS
la source
4
Attention, cette commande peut vous tuer complètement si elle est utilisée incorrectement
MikeSchem
Vous ne pouvez pas copier des répertoires avec dd!
mook765