Copie de nombreux fichiers sans arrêter les erreurs sur OSX

16

J'ai besoin de copier plusieurs Go d'un disque dur externe sur mon HD gémissant et certains fichiers provoqueront des erreurs. Si je fais cela avec le viseur, il s'arrêtera à la première erreur.

Existe-t-il un moyen de tout copier, quelles que soient les erreurs? Quelque chose comme une copie de la téracopie dans Windows?

cfischer
la source
Eh bien, si une erreur se produit, vous ne voudrez probablement pas copier ce fichier. Ou voulez-vous simplement ignorer ceux où une erreur se produit? Et, en fait, la meilleure question serait: pourquoi obtenez-vous ces erreurs? Quelles sont ces erreurs, même?
slhck
Je veux copier tous les autres fichiers et gérer les erreurs, quelles qu'elles soient plus tard.
cfischer
Quelles erreurs obtenez-vous spécifiquement?
slhck
1
J'espère qu'ils ajouteront la fonctionnalité Windows Vista + au Finder et continueront à copier tout en vous avertissant des erreurs.
Matthew Lock

Réponses:

20

Dans le terminal, saisissez

cp -Rp /Volumes/<source-volume>/<source-user>/<source-folder>/ /Volumes/<destination-volume>/<destination-folder>/

Le dossier de destination doit être un nouveau dossier que vous créez.

Si vous obtenez des informations sur le nouveau dossier après l'avoir exécuté, vous pouvez voir l'augmentation de la taille du dossier.

Exemple

cp -Rp /Volumes/Macintosh HD/User/Bob/Desktop/stufftocopy/ /Volumes/external/newfolder

Il copiera et affichera les erreurs pour tout ce qu'il ne peut pas copier mais sans s'arrêter.

* Si les noms de votre répertoire contiennent des espaces, mettez des guillemets autour du chemin

Exemple

cp -Rp "/Volumes/Macintosh HD/User/Bob/Desktop/stufftocopy/" /Volumes/external/newfolder
falcorklaatu
la source
2
des explications sur le drapeau -Rp?
user337085
Cela doit être différent pour osx, sur linux -Rp signifie recréer et préserver les attributs, rien à voir avec les erreurs.
Benubird
1
man cpsur macOS me dit: "En mode -R, cp continuera la copie même si des erreurs sont détectées."
adriaan
2

Vous pouvez utiliser cpcomme suggéré ou rsync, mais dans le cas d'une erreur d'E / S, cela ne fonctionnera pas toujours.

Donc, dans ce cas, vous pouvez utiliser l' ddoutil pour des fichiers spécifiques qui ont été corrompus.

ddsignifie «duplication de disque». Il s'agit d'un utilitaire de ligne de commande fourni avec Mac OS X. Une version gratuite pour Windows est également disponible.

Soyez extrêmement prudent, même si vous connaissez la ligne de commande, car dd peut endommager irrémédiablement vos données si vous ne spécifiez pas correctement l'entrée et la sortie. Tu étais prévenu.

Les arguments de dd sont simples:

  • if = path_of_file_with_IO_errors spécifie le chemin d'entrée
  • of = path_of_clean_copy_to_create spécifie le chemin de sortie
  • conv = noerror, sync indique à dd d'être tolérant aux pannes

Votre chemin de sortie ne doit pas se trouver sur le même disque que le fichier endommagé. En fait, vous ne devriez pas continuer à utiliser la carte ou le disque avec des erreurs d'E / S, car cela risque de causer plus de problèmes à l'avenir. Après avoir récupéré les données, vous devez les supprimer ou tout au plus les utiliser pour stocker des éléments sans importance.

En raison d'erreurs d'E / S, dd peut prendre plus de temps pour créer la copie propre qu'une copie normale prendrait.

Mais cela vaut vraiment la peine d'attendre, car nous avons maintenant un fichier propre sur lequel nous pouvons utiliser notre arsenal d'outils de diagnostic, d'aperçu et de récupération vidéo.

Les erreurs d'E / S sont une affaire sérieuse, et la mise au rebut de la carte après avoir récupéré les vidéos est probablement la BONNE CHOSE À FAIRE. Vous devez également considérer qu'une certaine quantité de séquences ne sera pas récupérée, ou avec une qualité moins que stellaire.

Source: http://aeroquartet.com/wordpress/2012/06/06/how-to-copy-a-file-with-io-errors/

Exemple:

dd if=/Volumes/CD/broken_movie.avi of=~/Movies/broken_movie.avi conv=noerror,sync

Voir également:

Kenorb
la source
1
J'ai entendu que les auteurs de dd voulaient le nommer cc, pour copie carbone, mais cc était déjà pris par le compilateur C. J'aime mieux que la "duplication de disque"
Tim
1

J'utilise Beyond Compare dans ce but précis (il s'agit d'un logiciel commercial mais avec un essai gratuit). Vous lui dites de copier un fichier, un dossier ou un lecteur entier ou toute combinaison et il se termine à la fin de la tâche et signale les problèmes au fur et à mesure. Cela n'aide pas à récupérer les fichiers corrompus, mais cela terminera le travail quel que soit le nombre de problèmes rencontrés.

Tim D
la source