Conseil de flux de travail comment conserver des fichiers à deux endroits à la fois

Récemment, je voulais sauvegarder mes fichiers de projet UDK 3 sur ma Dropbox, mais UDK exige que les fichiers de projet se trouvent dans le même répertoire que l'installation (4 Go) elle-même, et 4 Go est beaucoup trop volumineux pour ma Dropbox! Dans cet article, vous apprendrez comment résoudre ce problème en donnant l’impression que les fichiers se trouvent à deux endroits à la fois, en utilisant liens durs, liens symboliques, et jonctions.

Preview image icon de P. J. Onori.


Le concept de base

Lorsque vous défragmentez votre disque dur et que les informations sont déplacées, aucun de vos fichiers enregistrés ne cesse de fonctionner simplement parce que les informations sont stockées à un endroit différent. En effet, votre système d’exploitation possède une couche d’abstraction qui gère tout cela. essentiellement, ce que vous cliquez pour ouvrir une image ou un exécutable n’est qu’un lien vers le fichier ou les données souhaités.

De plus, vous pouvez en déduire que vous pourriez avoir plus d’un lien vers le même article; foo.exe et bar.exe pourrait ouvrir exactement le même programme!

Soyons un peu plus techniques…

Pointe: Il s'agit en réalité d'une fonctionnalité de systèmes de fichiers compatibles POSIX, tels que NTFS. Cela étant dit, cela ne fonctionnera PAS sur FAT, FAT32, exFAT et ReFS.

Liens durs

Liens durs sont similaires aux raccourcis de fichiers; ils vous permettent d’avoir accès au même fichier à différents endroits. La principale différence est que cela est implémenté sur le système de fichiers lui-même. Ainsi, lorsque vous créez un lien physique vers un fichier, vous créez simplement un nouveau fichier. prénom pour cela, et ce sera exactement le même fichier, les deux noms pointant exactement au même emplacement sur le disque dur.

Si vous apportez des modifications au fichier via tout des "noms" (c'est-à-dire si vous ouvrez le fichier d'origine ou l'un des liens physiques et le modifiez), les modifications seront propagées à tous les autres emplacements du fichier, en ce qui concerne les attributs de fichier et le fichier. lui-même.

Chaque fichier existera jusqu'à ce que tous ses liens en dur soient supprimés. lorsque cela se produit, l'espace utilisé par le fichier est déclaré comme étant libre. (Vous pouvez utiliser un outil de restauration de fichiers pour récupérer votre fichier, mais son fonctionnement n’est pas garanti.)

Jonctions (ou points de jonction)

Les liens durs sont aux fichiers quoi jonctions sont aux répertoires, partitions ou volumes, sur (et seulement sur) le même système. Les deux sont interprétés au niveau du système d'exploitation et, par conséquent, sont transparents pour les programmes et les utilisateurs..

Liens symboliques

Contrairement à ce qui précède, liens symboliques peut être utilisé à la fois pour les fichiers et les dossiers; ainsi, en essence et en perception, ils ressemblent beaucoup aux raccourcis.

La différence est qu'un lien symbolique pointe vers le chemin du fichier d'origine plutôt que vers l'emplacement du fichier sur votre disque dur. Cela signifie que si vous modifiez le contenu du fichier, un lien symbolique le désignera toujours (et reflétera les modifications), mais si vous modifiez la prénom du fichier d'origine, le lien symbolique ne le pointera plus.


Applications pratiques

J'ai utilisé cela pour résoudre quelques problèmes pratiques.

Cauchemar de gestion de projet UDK 3

Quiconque a travaillé avec UDK 3 sait que, même si le moteur est génial, le flux de travail de gestion de projet est lourd. Par exemple, il n’est pas facile de gérer plusieurs projets dans la même installation. Les développeurs disposent donc généralement de plusieurs installations pour plusieurs projets. Comme je l'ai dit plus haut, la situation empire si vous commencez à penser à la sauvegarde de votre projet..

Pour mes projets privés, j'utilise toujours deux solutions de sauvegarde: le contrôle de source et la sauvegarde sur le cloud, respectivement avec BitBucket et Dropbox. La configuration du contrôle de code source de votre code dans UDK est simple, mais si vous souhaitez sauvegarder votre projet personnalisé avec une solution de sauvegarde sur le cloud telle que Dropbox, exigeant que tous les fichiers se trouvent dans un dossier système spécifique?

Voici ma solution:

  • Dans votre dossier de sauvegarde sur le cloud, recréez la structure de dossiers pour vos fichiers de projet personnalisés afin de pouvoir simplement copier et coller dans une autre installation UDK. (Il s'agit d'un bonus supplémentaire qui vous aidera si vous souhaitez transférer votre projet sur un stylo USB vers un périphérique hors ligne.)
  • Vérifiez que vos fichiers de projet (y compris les fichiers de configuration UDK qui configurent votre projet personnalisé) sont correctement placés..
  • Créer des jonctions du dossier de projet personnalisé avec l'installation de UDK et des liens physiques pour les fichiers isolés en dehors de ces dossiers.

Pointe: Vous ne pouvez pas utiliser de liens symboliques; UDK le détectera et émettra une erreur.

Une bibliothèque musicale bien organisée

J'ai toujours eu des problèmes avec la façon dont j'ai organisé mon dossier de bibliothèque musicale; étant donné que je n'étais jamais un fan des applications comme iTunes et que je voulais que mon disque dur soit propre et organisé. Après avoir passé des années à essayer différentes approches, celle que j’aimais le plus était d’avoir un dossier par artiste et, à l’intérieur, les singles des artistes respectifs et plusieurs dossiers par album..

C'est bien, jusqu'à ce que vous commenciez à rencontrer des singles d'un artiste avec vingt autres artistes. Qu'allez-vous faire à ce sujet, copier le même fichier dans le dossier de chaque artiste? Nan; utiliser des liens durs!

  • Comme il y a toujours un artiste qui s'approprie la chanson, placez la chanson dans le dossier de l'artiste.
  • Créez des liens en dur de la même chanson vers le dossier de chaque artiste sélectionné.

Les mains sur!

Voici comment configurer ces liens sur les trois principaux systèmes d'exploitation.

les fenêtres

Sous Windows, vous pouvez le faire en utilisant la ligne de commande sans rien installer, ou via l'interface graphique de l'explorateur après l'installation d'un petit outil appelé Link Shell Extension..

Si vous utilisez la ligne de commande, ouvrez une invite de ligne de commande avec privilèges élevés (c’est-à-dire avec des privilèges d’administrateur), entrez mklink, et appuyez sur Entrer. Vous verrez les informations d'aide expliquant comment créer des liens physiques, des jonctions et des liens symboliques d'annuaire. Par exemple, vous pouvez créer un lien physique entre deux fichiers texte en appelant mklink / H c: \ fichier1.txt c: \ fichier2.txt.

Pour ce faire via Explorer, commencez par télécharger et installer Link Shell Extension. (Ceci est ma solution préférée car elle possède des fonctionnalités étendues et utiles, telles que des points de volume et des icônes de superposition.) Le flux de travail est vraiment simple; vous pouvez le voir en action et apprendre à l'utiliser sur la page Web de l'utilitaire.

Linux

Dans ma recherche, je n'ai pas trouvé de solution graphique complète pour Linux; si vous en connaissez un, veuillez le laisser dans les commentaires.

Si vous utilisez le terminal, vous pouvez utiliser le dans commande pour créer des liens durs et des liens symboliques. Par exemple, essayez fooOriginal barLink. Wikibooks a un guide simple sur ln, ou vous pouvez lire la spécification complète.

Il existe une solution graphique partielle: sous Ubuntu (et éventuellement d’autres variantes de Linux), vous pouvez créer des liens symboliques en faisant glisser un fichier avec le bouton central de la souris et en choisissant Lien ici.

Malheureusement, je n'ai trouvé aucune application graphique permettant la création de liens physiques.

Mac OS X

OS X est un cas particulier, car les liens physiques entre répertoires sont connus pour créer toutes sortes de problèmes. De plus, il y a une autre notion, semblable aux autres mais plus avancée: un alias.

Les alias sont similaires aux liens symboliques, mais ils sont implémentés dans un niveau supérieur et une structure plus robuste. Ils peuvent être liés aux fichiers et aux dossiers n’importe où, y compris les stockages en réseau, à l’aide d’un identifiant unique. L'une des meilleures caractéristiques des alias est qu'ils gardent un œil sur les changements d'emplacement de fichier. c'est-à-dire qu'ils ne cassent pas lorsque le fichier d'origine est déplacé vers un autre endroit. Malheureusement, certaines applications peuvent avoir des difficultés à les suivre jusqu'à la cible..

D'autre part, les liens symboliques (ou liens symboliques) sont des fichiers système de bas niveau contenant le chemin de la cible; ils se brisent lorsque vous déplacez le fichier d'origine, mais toute application qui l'utilise arrivera à l'emplacement souhaité. Les liens symboliques peuvent être utilisés avec des dossiers système ou d’application prédéfinis, ou lorsque vous souhaitez déplacer vos documents utilisateur ou le cache de messagerie sur un autre lecteur..

Pointe: Les utilisateurs de Mac OS vous conseillent de vous en tenir à des alias et des liens symboliques chaque fois que cela est possible..

Dans le terminal, vous pouvez utiliser le dans commande comme dans Linux.

Dans l'interface graphique, vous pouvez utiliser le menu contextuel pour créer un alias en cliquant avec le bouton droit de la souris sur un fichier ou un dossier. Vous pouvez également créer des liens symboliques avec l'application SymbolicLinker..

Une troisième option consiste à écrire votre propre code ou à le compiler à partir de ce référentiel GitHub.


Autres cas d'utilisation

Je m'éloigne de plus en plus du développement de jeux, mais je pense qu'il est important de montrer la variété de problèmes que vous pouvez résoudre avec ce concept, de sorte que vous soyez bien préparé à l'utiliser dès que ce sera approprié dans votre flux de travail gamedev!

Déplacement de fichiers de paramètres ou de répertoires de clés

La plupart des applications ne sont pas flexibles en ce qui concerne le chemin d'accès aux paramètres de l'utilisateur. Vous pouvez donc utiliser des liens pour résoudre ce problème si vous souhaitez sauvegarder les informations ou les conserver séparées et organisées ailleurs..

Sous Linux, vous pouvez également utiliser des liens symboliques pour sauvegarder votre dossier de départ sur un autre lecteur:

  • Copiez votre dossier personnel sur un lecteur ou une partition différent,
  • Formatez votre partition système avec une nouvelle installation.
  • Créez un lien symbolique vers le nouveau dossier d’accueil du système. (Si vous connaissez bash, vous pouvez créer un script qui le fait pour vous, ce qui facilite l'installation de nouvelles versions de nouvelles versions!)

Sous Windows, surtout si vous avez un disque SSD plutôt petit, vous pouvez utiliser des liens pour séparer votre installation Windows de votre Utilisateur et Fichiers de programme Dossiers:

  • Installez Windows sur votre SSD.
  • Bouge le Fichiers de programme et Utilisateurs dossiers sur un lecteur séparé et créer des jonctions pour les chemins des dossiers d'origine.
  • Si vous obtenez une erreur Windows Update 80070011, vous pouvez vérifier cet article sur la résolution du problème.
  • Ou, si vous double-amorcez Linux et Windows, vous pouvez utiliser des liens pour conserver les mêmes fichiers personnels sur les deux systèmes d'exploitation. Ceci est particulièrement utile dans les scénarios où vous avez besoin d’un accès Email ou Dropbox dans les deux systèmes d’exploitation, mais ne souhaitez bien sûr pas que vos fichiers soient dupliqués dans chaque système..

    La programmation

    Vous pouvez créer un gros programme avec plusieurs fonctionnalités qui s'appuient sur le nom de l'application pour déterminer la fonction à exécuter. (C’est-à-dire que la même application possède plusieurs liens physiques dont le nom ne diffère pas.) Cela a été fait dans les anciens systèmes Unix, où mv, cp et rm couru le même fichier exécutable. Si vous y réfléchissez, déplacer un fichier dans le pire des cas peut s’avérer très compliqué. cp et rm opération et, avec cette méthode, vous pouvez partager la plupart du code et réduire au minimum les exigences de stockage des assemblys..

    Pendant mes recherches, je l’ai essayé en C # et Windows 8.1; dans mes recherches, j'ai trouvé qu'il existe de nombreuses façons d'obtenir le nom de fichier d'un programme, mais seules certaines de ces méthodes peuvent récupérer le nom de fichier d'un lien physique.

    L'image ci-dessus montre un programme de test que j'ai créé pour illustrer ce problème. Comme vous pouvez le constater, le nom de fichier de la première fenêtre est OriginalFileName.exe et celui de la seconde est HardlinkedFileName.exe. Le code affiché est le code nécessaire pour les résultats affichés, respectivement. Vous pouvez obtenir le code de cette application sur ce dépôt GitHub.

    Enfin, en tant que développeur Web, vous pourriez rencontrer le même type de problèmes que ceux que j’ai décrits pour le développement d’UDK 3, en particulier si vous utilisez LAMP, WAMP ou un logiciel similaire. Vous pouvez coder un script pour créer des liens physiques et des liens symboliques vers les fichiers de votre site, afin que les fichiers puissent figurer n'importe où sur vos périphériques de stockage, mais vous ne devez rien changer pour tester le site.


    Conclusion

    Ne vous attendez pas à utiliser ceci quotidiennement, mais attendez-vous à vous sentir béni lorsque vous avez un problème qui est facilement résolu avec cela. C’est l’une de ces choses à garder en tête, car il sera utile de savoir un jour.