web-dev-qa-db-fra.com

Copie vers deux emplacements en même temps

Je ne parle pas très bien bash ... ce que j'aimerais faire, c'est copier le contenu d'un DVD-R sur deux disques durs différents de la manière la plus rapide possible.

(Les solutions basées sur l'interface utilisateur sont également les bienvenues)

Merci!

7
Diego Mijelshon

Le goulot d'étranglement est susceptible de lire à partir du lecteur de DVD, nous devons donc nous assurer de le lire une seule fois ou de le lire deux fois, mais à des intervalles suffisamment proches pour que les données soient toujours dans le cache. Ce dernier semble difficile, alors allons-y pour le premier.

Nous devons trouver un duplicateur quelque part. Si nous nous limitons aux commandes Shell de base, le seul choix est tee. Nous devons donc convertir l'entrée (une arborescence de fichiers) en un flux, alimenter le flux en tee et reconvertir chaque flux de sortie en une arborescence de fichiers. L'outil pour ce faire est un archiveur. La compression sur quelque chose qui restera en mémoire est un gaspillage, alors utilisons simplement tar.

Les tuyaux (command0 | command1) Nous permettent d'alimenter la sortie d'une commande en une autre commande. Nous devons alimenter la sortie de tee dans deux autres commandes, donc une autre construction bash est utile: command1 >(command2) crée un tube qui est passé à command1 Comme première commande plutôt que de devenir la sortie standard de command2. (Recherchez la substitution de processus dans le manuel bash.)

Voici la commande (non testée):

mkdir /media/disk0/copy_of_dvd /media/disk1/copy_of_dvd
cd /media/cdrom
tar cf - . | tee >(tar xf - -C /media/disk0/copy_of_dvd) | tar xf - -C /media/disk1/copy_of_dvd
13
Gilles

Une solution basée sur Shell consiste à ouvrir un terminal et à taper:

cp -r /location/of/DVD /hard/drive/a &
cp -r /location/of/DVD /hard/drive/b

La commande cp est destinée aux fichiers de copie et -r switch copie tous les fichiers récursivement. Vous devez entrer le répertoire où se trouve votre DVD (généralement /media/dvd ou similaire) et placez sur le disque dur l'endroit où vous voulez les fichiers (c'est-à-dire /home/diego/mydvd). Le & envoie le premier processus en arrière-plan et vous pouvez immédiatement saisir et exécuter une deuxième commande.

1
qbi

Comme mentionné dans le commentaire de Li Lo à la réponse de qbi, les lecteurs optiques (CD, DVD, etc.) sont le type de lecteur le plus lent, donc vous voulez minimiser la quantité de lecture que vous faites à partir du lecteur de DVD. La solution évidente serait de copier les données du DVD vers un emplacement sur le disque dur, puis de les copier de cet emplacement vers l'autre disque dur.

cp -r /media/cdrom /location1
cp -r /location1 /location2
1
David Z