web-dev-qa-db-fra.com

Existe-t-il un moyen d'utiliser la commande "DD" pour transférer des dossiers spécifiques dans un disque dur externe?

J'essaie actuellement d'utiliser dd pour sauvegarder et copier le dossier BACKUPS.DB (qui contient toutes les sauvegardes de la machine TIME pour Mac OS) dans mon disque dur externe. Le problème est que mon disque dur ne contient pas seulement le dossier BACKUPS.DB, mais il contient également d'autres dossiers et fichiers au niveau supérieur. Si j'utilise dd sur l'appareil, il copiera également les autres dossiers et fichiers. J'ai besoin d'utiliser quelque chose comme dd à cause des liens durs présents dans le dossier BackUps.DB, ce qui fait quelque chose comme cp ou tar _ ne fonctionne pas.

À ce stade, devrais-je copier les autres dossiers de niveau supérieur afin que le lecteur externe ne contienne que le dossier BACKUPS.DB? Ou y a-t-il un moyen plus efficace pour cela? Je demande que je connais comme je sais dd ne peut être utilisé que sur des périphériques, après la démontage.

4
user321627

Pour répondre à la question, NON Ce n'est pas faisable.

dd fonctionne directement sur les blocs d'un périphérique et ne comporte pas de compréhension des systèmes de fichiers, du dossier ou des fichiers. Un seul répertoire ne sera presque jamais stocké dans une seule région contiguë et même des fichiers simples peuvent être brisés sur une propagation. De plus, vous ne pouvez pas copier uniquement les bits d'un système de fichiers pour économiser de l'espace et s'attendre à ce que cela fonctionne toujours, car tous les index et décalages doivent encore être alignés.

Le travail nécessaire pour faire une telle chose implique d'écrire essentiellement un pilote de système de fichiers complet pour comprendre comment tout se trouve et comment il peut être modifié et l'exécuter avec plusieurs appels dd. Il ne sert à rien de dire que cela existe déjà et peut être fait avec les utilitaires de fichier normaux tels que GNU cp, tar et rsync.

12
OrangeDog