web-dev-qa-db-ja.com

オペレーティングシステムにとらわれないシンボリックリンク/エイリアス/ショートカット

Dropboxなどのオンラインサービスと同期するフォルダーがあり、オペレーティングシステムが異なる他のコンピューターと同期します。このフォルダー内のファイル/フォルダー構成の一部は、シンボリックリンク/エイリアスを使用しています(私の自宅のコンピューターはMacです)。フォルダをWindowsコンピュータに同期する場合、残念ながらシンボリックリンクとエイリアスは認識されませんが、ショートカットは認識されます。

クロスプラットフォーム互換のMacまたはWindowsでシンボリックリンク/ショートカットを1回作成する方法はありますか?それ以外の場合は、ファイルごとに2つのリンクを作成する必要があります。1つはMac/Linux用、もう1つはWindows用です。

注:このフォルダーの目的は、誰かが尋ねることを知っているので、フォルダーの階層に多くのファイルを整理して保存することです。時折、ファイルまたはフォルダが2つ以上の場所に収まるように見えるため、シンボリックリンクが表示されます。これはMac/Linuxでは非常に一般的な方法です。

3
tralston

これはばかげていますが、おそらく有用な解決策です:不可知論的なリンクである小さな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ベースになることを祈り続けてください...またはただ死ぬだけです。)

編集:新しい答え

このハウツーオタクの投稿 によると、cmd(Windows Vista-10)のmklinkを使用して、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

これにより、14Wintercs355と呼ばれるリンクがclassescs355に作成されます。

Windowsでリンクを作成した後、リンクは私のLinuxボックスでも機能しました。私はMacを試したことがありません。 Macで動作しない場合は、お知らせください。

4
Cory-G