Symlink Google Drive


13

Je souhaite synchroniser les dossiers qui se trouvent sur mon Mac avec Google Drive, sans avoir à faire glisser les dossiers vers le dossier Google Drive et en préservant la structure de mes dossiers sur mon Mac.

J'ai supposé que vous deviez avoir un lien symbolique (lien symbolique) pour que cela fonctionne.

J'ai donc essayé dans Terminal:

cd /path/to/google/drive
ln -s /path/to/folder/

Le dossier est apparu sur mon dossier Google Drive, mais il ne voulait pas se synchroniser.

J'ai donc essayé

ln -s “/path/to/folder”  “/path/to/google/drive/”

Toujours pas fonctionné. J'ai donc fait référence à cet article HowToGeek sur ce sujet et il a dit que vous devez déplacer le dossier d' origine vers le dossier Google Drive et créer une symbolique comme le dossier parent d'origine.

J'aimerais que l'original ne se trouve pas dans le dossier Google Drive. Existe-t-il une alternative gratuite au lien symbolique? J'ai regardé jdrivesync mais je n'ai pas réussi à installer (ce sera un autre problème dans une autre discussion).

Merci de votre aide!


Existe-t-il un autre moyen de créer un lien symbolique pour synchroniser des dossiers en dehors de mon dossier Google Drive? Je mettrai à jour la question. @techraf
ThoughToo

Il ne dit jamais que c'est impossible. Pourrait-il y avoir un autre moyen que d'utiliser des liens symboliques ou pourrait-il y avoir une application? @techraf
ThoughToo

Je n'ai jamais demandé une autre commande symlink ou quoi que ce soit car cela ne fonctionnerait évidemment pas. Existe-t-il une application ou une autre commande qui pourrait réaliser ce que je veux faire? Il est inutile de discuter de ce que j'ai dit, nous nous entraidons ici.
BeenToo

Réponses:


15

Vous pouvez utiliser un lien dur de répertoire, mais uniquement sur le système de fichiers HFS +. Vous aurez besoin de GNU lnpour utiliser l' -doption. Cela peut être installé à l' aide Homebrew : brew install coreutils, puis exécutez:

sudo gln -d "/path/to/original" "/path/to/drive/folder"

On vous demandera votre mot de passe. Cette commande crée un lien dur vers le fichier / dossier lui-même plutôt que la façon dont un lien symbolique renvoie vers un pointeur vers un fichier / répertoire. Comme le dossier de liens est essentiellement le même que le dossier d'origine, Google Drive le synchronise correctement.

Pour dissocier un lien dur, utilisez unlink "/path/to/drive/folder".

AVERTISSEMENT: APFS (Apple File System) ne prend pas en charge les liens durs. Si vous prévoyez d'installer macOS High Sierra ou une version ultérieure et que vous souhaitez continuer à utiliser les liens matériels du répertoire, vous devrez maintenir votre système de fichiers HFS +. Par défaut, macOS High Sierra intaller sur un mac avec SSD (par exemple sans disque dur ou Fusion Drive) convertit automatiquement le système de fichiers HFS + en APFS. Pour ignorer la conversion pendant la mise à niveau, vous devrez exécuter le programme d'installation de macOS comme suit:

/Applications/Install\ macOS\ High\ Sierra.app/*/R*/startosinstall --converttoapfs NO

Si vous évitez la dernière option, vous vous retrouverez avec un désordre de répertoires liés /.HFS+ Private Directory Dataaprès la mise à niveau.


1
Merci de répondre. J'ai essayé cela et il a dit que c'était un répertoire dont je suppose que "ln" en lui-même ne fonctionne que pour les fichiers réels?
WhileToo

1
@Mekul Oops -dest pour les répertoires, voir modifier.
grg

1
Êtes-vous sûr? Je viens de taper dans Terminal et j'ai dit que c'était une option illégale, même tapé dans "man ln" et il n'y avait rien de tel que "-d". Merci pour l'aide quand même!
WhileToo

1
@Mekul C'est bon, c'est ma faute! Je fais tout cela sur mon téléphone de mémoire, la prochaine fois, j'attendrai juste d'être sur mon ordinateur! Je pense que cela fait partie du paquet «coreutils» et s'appelle «gln» pour ne pas remplacer le «ln» existant.
grg

1
@Mekul Je voulais dire installer coreutils puis la commande devient 'sudo gln -d…', rien de plus à installer.
grg

0

Google Drive semble inutile, sauf si vous souhaitez réorganiser votre disque.

Sugarsync est conçu avec Windows à l'esprit. Il est vraiment épatant et vous permet de synchroniser les dossiers existants, où qu'ils se trouvent. Je l'ai utilisé pendant un moment. Il a un client Mac, mais c'est tout ce qu'ils y ont pensé. Il ne peut pas synchroniser correctement les bundles. Les bundles sont une structure UNIX que le Mac utilise pour les applications et les fichiers de données. Je me suis donc débarrassé de Sugarsync.

OneDrive de Microsoft ne fait pas de liens symboliques et je ne pense pas qu'ils savent même ce que sont les bundles.

Dropbox, quant à lui, respecte les liens symboliques et gère correctement les bundles.


0

Hardlink ne fonctionne traditionnellement que pour le fichier, pas pour le répertoire.

Bien que HFS + prenne en charge le lien dur d'annuaire, il s'agit plutôt d'une fonctionnalité interne réservée à Time Machine . Utilisez-le à vos risques et périls.

Vous pourriez regarder SugarSync , qui prétend

Sauvegardez et accédez à vos fichiers. Utilisation de votre structure de dossiers existante.

Une expérience personnelle avec un lien dur d'annuaire est que

  • Je rétrécis puis agrandis le disque Time Machine, qui utilise fortement le lien dur du répertoire
  • Ensuite, les données de sauvegarde sont gâchées
  • Je dois formater la partition, perdre l'historique

-1

Dans macOS Sierra et avec la nouvelle solution coreutils dans le post précédent, ne fonctionne pas comme prévu.

1) Vous allez avoir besoin de gnu coreutils. Vous pouvez l'installer via homebrew.

brew install coreutils

2) (facultatif) vous pouvez taper gln --helppour obtenir le manuel d'utilisation de cette commande. Cela produira 4 façons:

  1. Utilisation: gln [OPTION] ... [-T] TARGET LINK_NAME (1er formulaire)
  2. ou: gln [OPTION] ... CIBLE (2e forme)
  3. ou: gln [OPTION] ... CIBLE ... RÉPERTOIRE (3e forme)
  4. ou: gln [OPTION] ... -t CIBLE DE RÉPERTOIRE ... (4ème forme)

    Dans le 1er formulaire, créez un lien vers TARGET avec le nom LINK_NAME.

    Dans le 2ème formulaire, créez un lien vers TARGET dans le répertoire courant.

    Dans les 3e et 4e formes, créez des liens vers chaque CIBLE dans RÉPERTOIRE.

3) Accédez à google 'drive folder' (GD) ou à n'importe quel sous-dossier GD via la ligne de commande:

3.a) Vous pouvez dans le type de terminal cd(espace après 'd') et faire glisser le dossier / répertoire sur la fenêtre du terminal

3.b) ou tapez simplement votre chemin vers la destination, comme cd /Users/yourAccountName/Google\ Drive/sub/subSubFolder où 'yourAccountName' est le nom de votre compte dans OS et 'sub / subSubFolder' la structure de vos dossiers dans GD. Veuillez noter que vous devez `` échapper '' les symboles spéciaux dans votre chemin de fichier et votre nom avec une barre oblique inverse ('\'), comme je l'ai fait avec un espace dans le nom du dossier 'Google Drive', de sorte qu'il ressemble maintenant à 'Google \ Drive'.

4) Et, comme l' explique grgarside dans son article, vous devez utiliser sudo et -dkey pour effectuer la liaison. Alors, tapez simplement:

sudo gln -d '/Users/yourAccountName/path/to/original/folder/with/your/stuff'

-2

Deux façons d'obtenir de nombreux fichiers / dossiers dans Google Drive sans modifier la structure de vos fichiers:

  1. Avec Google Drive pour Mac installé: dupliquez les dossiers appropriés et faites glisser leurs copies dans le dossier Google Drive.

OU

  1. Utilisation de Google Drive avec Google Chrome: faites glisser les dossiers pertinents sur une fenêtre de lecteur Google dans Chrome; ils vont télécharger et cela ne gâchera pas votre structure de fichiers.

L'utilisation de l'une de ces méthodes permet de placer vos dossiers dans Drive sans modifier la structure de vos fichiers.

Je sais que ni l'un ni l'autre n'est ce que vous avez demandé, mais ils devraient tous les deux faire le travail. Commentez ci-dessous pour autre chose.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.