Symlink / Alias / Atalho Agnóstico do Sistema Operacional

3

Eu tenho uma pasta que sincronizo com serviços on-line, como o Dropbox, que sincronizo com outros computadores com diferentes sistemas operacionais. Parte da minha organização de arquivos / pastas nesta pasta usa links simbólicos / aliases (meu computador doméstico é um Mac). Quando sincroniza a pasta com um computador Windows, infelizmente os links simbólicos e aliases não são reconhecidos, mas os atalhos são.

Existe uma maneira de criar um symlink / shortcut uma vez em um Mac ou Windows com compatibilidade entre plataformas? Caso contrário, terei que criar dois links por arquivo, uma para Mac / Linux e outro para Windows.

NOTA: O objetivo desta pasta, porque sei que alguém perguntará, é organizar e armazenar muitos arquivos em uma hierarquia de pastas. Ocasionalmente, um arquivo ou pasta parece se encaixar em dois ou mais lugares, daí o symlink. Esta é uma prática muito comum no Mac / Linux.

    
por tralston 09.05.2015 / 22:44

1 resposta

4

Aqui está uma solução idiota, mas possivelmente útil: Você pode escrever um pequeno script python que seja um link agnóstico (Código encontrado aqui )

#!/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")

isso, é claro, sempre abrirá uma nova janela. Não é uma ótima solução, mas pode ser tudo que você recebe. (Continue orando para que um dia as janelas sejam baseadas no linux ... ou simplesmente morram.)

EDIT: Nova resposta

De acordo com este artigo -geek post , você pode usar mklink do cmd (Windows Vista - 10) para criar links simbólicos que também funcionam no linux. O guia também tem uma maneira de instalar uma ferramenta que facilita a vinculação (adicionando-a ao menu do botão direito do mouse).

A sintaxe da linha de comando é:

mklink /prefix link_path file/folder_path 

onde o prefixo pode ser:

/D – creates a soft symbolic link, which is similar to a standard folder or file shortcut in Windows. This is the default option, and mklink will use it if you do not enter a prefix.

/H – creates a hard link to a file

/J – creates a hard link to a directory or folder

Um exemplo que acabei de fazer:

mklink /J D:\Dropbox\school\archiveWinter\cs355 D:\Dropbox\school\classes\cs355

O que torna um link em 14Winter chamado cs355 para o cs355 in classes

Depois de criar o link no windows, o link também funcionou na minha caixa linux. Eu não tentei Mac. Se você achar que não funciona para mac, me avise.

    
por 18.09.2015 / 08:46