フォルダへのシンボリックリンクを作成したい。次のコマンドはリンク名のファイルを作成しますが、ソース フォルダーにリンクしようとしています。私は何を間違っていますか?
ln -s /Users/me/somefolder somefolder
これにより、現在のディレクトリにファイル「somefolder」が作成されます。フォルダとその内容へのシンボリック リンクを作成するにはどうすればよいですか?
ありがとう!
リンクを作成するには、絶対パス名を使用する必要があります。たとえば、私は今
$ pwd
/home/alex/my_folder
そして、pwd (現在の作業ディレクトリ) の下のサブディレクトリにある "directoryA" フォルダーへのシンボリック リンクを作成しています。
$ ln -s $PWD/directoryA $PWD/temp/link_to_directoryA
この場合、変数$PWD
は作業ディレクトリへの絶対パスを保持します。次のような変数なしで絶対パスを確実に使用できます。
$ ln -s /home/alex/my_folder/directoryA /home/alex/my_folder/temp/link_to_directoryA
ディレクトリを作成しないのは、予期された動作です。
あなたがするとき
ls -ali
で始まる何かが表示されます。
lrwxrwxrwx
ここで、「l」はシンボリックリンクを表し、cd を使用してトラバースできるようにします。
注意:無効なソース パスを指定しても、 lnコマンドは文句を言いません。cd を実行しようとすると、エラー メッセージが表示されます。
シンボリックリンクを作成するのと同じディレクトリ内にいる必要があります
例えば:
cd /Users/me
ln -s somefolder somefolderNewName
あなたは欲しいものを持っていると思いますが、あなたはそれを知らないだけです。データ ファイルやディレクトリと同様に、リンクにはディレクトリ内のエントリがあります。ls -l
リンクを作成しているディレクトリで実行すると、これが最も明確にわかります。
リンクをディレクトリのように使用できます。たとえば、次のようになります。
$ cd somefolder
また、この方法でディレクトリを変更すると、 somefolder の親がリンクを含むディレクトリになることも知っておく必要があります。それを望まない場合は、次を使用します。
$ cd -P somefolder