3

У меня есть папка, которую я синхронизирую с онлайн-сервисами, такими как Dropbox, и синхронизирую с другими компьютерами с другими операционными системами. Часть моей организации файлов / папок в этой папке использует символические ссылки / псевдонимы (мой домашний компьютер - Mac). Когда он синхронизирует папку с компьютером Windows, к сожалению, символические ссылки и псевдонимы не распознаются, но ярлыки.

Есть ли способ создать символическую ссылку / ярлык на Mac или Windows с кросс-платформенной совместимостью? В противном случае мне придется создать две ссылки на файл, один для Mac / Linux и один для Windows.

ПРИМЕЧАНИЕ. Цель этой папки, поскольку я знаю, что кто-то спросит, состоит в том, чтобы упорядочить и хранить множество файлов в иерархии папок. Иногда кажется, что файл или папка помещаются в два или более мест, отсюда и символическая ссылка. Это очень распространенная практика на Mac/Linux.

1 ответ1

4

Вот глупое, но, возможно, полезное решение: вы могли бы написать небольшой скрипт на python, который является независимой ссылкой (код найден здесь)

#!/usr/bin/python
import subprocess
import sys

if sys.platform == 'darwin':
    def openFolder(path):
        subprocess.check_call(['open', '--', path])
elif sys.platform == 'linux2':
    def openFolder(path):
        subprocess.check_call(['gnome-open', '--', path])
elif sys.platform == 'win32':
    def openFolder(path):
        subprocess.check_call(['explorer', path])

openFolder("relative/path")

это, конечно, всегда откроет новое окно. Не очень хорошее решение, но это может быть все, что вы получите. (Продолжайте молиться, чтобы однажды окна были основаны на Linux ... или просто умерли.)

РЕДАКТИРОВАТЬ: Новый ответ

Согласно этому сообщению с инструкциями, вы можете использовать mklink из cmd (Windows Vista - 10) для создания символических ссылок, которые также работают в linux. В руководстве также есть способ установить инструмент, который может упростить связывание (добавив его в контекстное меню).

Синтаксис командной строки:

mklink /prefix link_path file/folder_path 

где префикс может быть:

/D - создает мягкую символическую ссылку, которая похожа на стандартную папку или ярлык файла в Windows. Это опция по умолчанию, и mklink будет использовать ее, если вы не введете префикс.

/H - создает жесткую ссылку на файл

/J - создает жесткую ссылку на каталог или папку

Пример, который я только что сделал:

mklink /J D:\Dropbox\school\archive\14Winter\cs355 D:\Dropbox\school\classes\cs355

Который делает ссылку в 14Winter именем cs355 на cs355 в classes

После создания ссылки в Windows ссылка работала и на моем компьютере с Linux. Я не пробовал Mac. Если вы обнаружите, что это не работает для Mac, дайте мне знать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .