Introduction
Une équipe de conservation déplace Garden Atlas vers un nouveau poste. La source contient des brouillons privés et des aperçus temporaires ; le destinataire possède déjà une note à préserver. Votre résultat sera une collection et un inventaire utilisables, d'abord pour aujourd'hui puis pour une édition révisée.
Une familiarité élémentaire avec le terminal est nécessaire. Cet environnement indépendant fournit deux dossiers locaux et un instantané de l'édition suivante. Vous apprendrez le sens du transfert, les barres finales, les simulations, les filtres et le périmètre précis de suppression avant d'appliquer ces idées par SSH dans le travail suivant.
Répéter le déplacement dans les limites de la collection
Dans cette étape, vous copierez la collection dans le dossier destinataire après avoir comparé deux simulations sûres. Utilisez Terminal pendant tout ce travail. SSH n'est pas nécessaire ici.
Le poste de conservation déplace Garden Atlas. old/collection contient les textes, une configuration de lecture cachée et un lecteur exécutable. old/generated contient des inventaires jetables du poste. old/personal est privé. Le nouveau poste possède déjà receiver-note.txt, qui appartient à l'équipe destinataire et doit survivre à chaque mise à jour. revision/ contient l'édition suivante fournie pour plus tard.
cd change de répertoire. ls -a inclut les entrées cachées ; cat lit du texte sans le modifier. Commencez par consulter la note de l'équipe destinataire :
cd /home/labex/project/folder-move
ls -a old/collection
cat new/receiver-note.txt
La note indique Received by Mira. Keep the west shelf clear. L'ancien catalogue déjà présent est incomplet. La destination est volontairement non vide.
rsync copie de son premier chemin vers son second. -a signifie mode archive : copie récursive des répertoires, conservation des dates, des droits d'exécution et d'autres attributs pris en charge. Un compte destinataire ordinaire ne peut pas conserver n'importe quel propriétaire source ; ce cours vérifie les octets et le droit d'exécution, sans garantir la propriété entre systèmes, les ACL ou les attributs étendus. -n simule sans modifier de fichier. -i énumère les changements proposés un à un.
L'exclusion entre apostrophes écarte les noms finissant par .tmp à toute profondeur ; les apostrophes empêchent le shell de développer le motif avant que rsync le reçoive.
Simulez d'abord le répertoire source lui-même, sans barre finale :
rsync -ani --exclude='*.tmp' old/collection new/collection/
Repérez un collection/ supplémentaire proposé dans la collection de destination. Cette imbrication placerait le lecteur au mauvais endroit.
Simulez maintenant le contenu de la source, avec une barre finale :
rsync -ani --exclude='*.tmp' old/collection/ new/collection/
Les chemins sont maintenant directement sous new/collection/, dont .bindery.conf, read-book et texts/. Les fichiers commençant par un point sont inclus car rsync reçoit le répertoire lui-même ; un joker shell comme old/collection/* omettrait les entrées cachées. Les nouveaux fichiers ordinaires affichent souvent >f+++++++++ ; les autres indicateurs décrivent les attributs modifiés. Les lignes de simulation sont des propositions, pas une collection livrée.
Retirez uniquement n pour exécuter le transfert choisi :
rsync -ai --exclude='*.tmp' old/collection/ new/collection/
new/collection/read-book
Le lecteur affiche reading_order=catalog,treatment, puis le catalogue de Garden Atlas et le traitement à charnières de papier. L'exécution directe prouve que le lecteur copié fonctionne avec ses chemins relatifs et sa configuration cachée. Si l'exécution est refusée, examinez les modes source et destination avec ls -l, puis relancez le mode archive depuis la source préparée. Ne remplacez pas le lecteur par une sortie fixe.
Si vous avez effectué la copie imbriquée par erreur, examinez ls new/collection/collection avant de supprimer uniquement le doublon avec rm -r new/collection/collection. rm -r supprime définitivement le répertoire nommé et son contenu. Ne raccourcissez jamais ce nettoyage à new, qui contient aussi la note destinataire. Relancez ensuite le bon transfert.
Livrer l'inventaire du poste sans supprimer les notes
Dans cette étape, vous terminerez la première livraison en copiant l'inventaire généré séparé. Restez dans Terminal, dans /home/labex/project/folder-move.
La collection et les fichiers générés n'ont pas les mêmes responsabilités. La source gère chaque fichier sous generated/ ; le destinataire possède la note à sa racine. Sélectionnez uniquement le second répertoire géré au lieu de copier tout old/, ce qui divulguerait aussi personal/.
rsync -ani old/generated/ new/generated/
rsync -ai old/generated/ new/generated/
cat new/generated/current.txt
cat new/receiver-note.txt
L'inventaire indique Garden Atlas | desk edition 1. L'ancien inventaire fait encore volontairement partie de l'édition 1. La note destinataire n'a pas changé. Relancez le lecteur livré :
new/collection/read-book
--delete n'a pas été nécessaire. Par défaut, rsync conserve les fichiers propres à la destination. Une exclusion empêche le transfert ; elle ne supprime pas un fichier temporaire déjà présent. Si vous avez copié un aperçu par erreur, examinez puis supprimez uniquement le fichier indésirable exact, par exemple rm new/collection/preview.tmp, puis recommencez la synchronisation filtrée. Ne nettoyez jamais la racine destinataire pour réussir la vérification.
Appliquer l'édition suivante dans le périmètre géré
Dans cette étape, vous livrerez une seconde édition et retirerez uniquement l'ancien inventaire généré. Restez dans Terminal, dans le même espace de travail.
cat accepte plusieurs noms de fichiers et les affiche dans cet ordre. Lisez l'édition suivante fournie avant de remplacer la source modifiable :
cat revision/collection/texts/catalog.txt revision/collection/texts/treatment.txt revision/collection/texts/addendum.txt
Le catalogue compte maintenant 48 feuillets, le traitement utilise des charnières de lin et un supplément est nouveau. cp -a copie récursivement en conservant les attributs. revision/. désigne tout le contenu, fichiers cachés compris. La copie superpose les modifications fournies à old/ sans supprimer une entrée absente de la révision. Le poste retire explicitement old/generated/obsolete.txt : supprimez uniquement ce fichier source nommé. rm supprime définitivement un fichier ; n'élargissez pas le chemin.
cp -a revision/. old/
rm old/generated/obsolete.txt
Habituellement, rsync détermine les changements de données à partir de la taille et de la date de modification. -c ajoute une comparaison du contenu par somme de contrôle. Ces petits fichiers limitent le coût et permettent de détecter les changements de même taille avec dates conservées. Cela ne crée ni historique de versions ni sauvegarde. Simulez puis appliquez la mise à jour de la collection :
rsync -anci --exclude='*.tmp' old/collection/ new/collection/
rsync -aci --exclude='*.tmp' old/collection/ new/collection/
La simulation de la collection doit afficher les deux textes révisés et le nouveau supplément, sans aperçus temporaires. Des changements d'attributs seuls peuvent aussi apparaître.
--delete supprime les entrées de destination absentes de la source à l'intérieur du répertoire de synchronisation choisi. Ici, seul generated/ est entièrement géré ; la racine destinataire ne l'est pas. Simulez le retrait, repérez *deleting obsolete.txt, puis appliquez exactement le même périmètre :
rsync -anci --delete old/generated/ new/generated/
rsync -aci --delete old/generated/ new/generated/
cat new/generated/current.txt new/collection/texts/addendum.txt new/receiver-note.txt
new/collection/read-book
Vous devez lire l'édition 2 du poste, le nouveau feuillet, la note d'origine et la sortie actualisée du lecteur. Un miroir de toute la racine avec --delete pourrait effacer la note. Ne l'utilisez jamais pour retirer ce seul inventaire géré.
Répétez les mêmes simulations :
rsync -anci --exclude='*.tmp' old/collection/ new/collection/
rsync -anci --delete old/generated/ new/generated/
Il ne devrait rester aucun changement de fichier. La répétition est sûre dans le périmètre déclaré, mais une future suppression source exigera encore une décision explicite sur le répertoire destinataire géré. rsync seul ne permet pas de récupérer l'édition originale ; utilisez une sauvegarde distincte lorsque l'historique compte.
Résumé
Vous avez livré une collection utilisable, conservé sa configuration cachée et les permissions du lecteur, ainsi que la note du poste destinataire. Une seconde synchronisation a actualisé les fichiers gérés et supprimé un ancien inventaire uniquement dans le périmètre déclaré. La synchronisation est directionnelle ; elle ne constitue ni une sauvegarde versionnée ni un outil de fusion des conflits.



