創刊:
引用:
作成と削除は正常に機能します。しかし、更新は機能しません。このコマンドを実行すると、シンボリックリンクは無効になります。
指定されたディレクトリ構造の問題:
〜/ scripts / test /〜/ scripts / test / remote_loc /〜/ scripts / test / remote_loc / site1 /〜/ scripts / test / remote_loc / site1 / stuff1.txt〜/ scripts / test / remote_loc / site2 /〜/ scripts /test/remote_loc/site2/stuff2.txt〜/ scripts / test / remote_loc / site2 /〜/ scripts / test / remote_loc / site3 / stuff3.txt
コマンドを使用して:
ln -s /remote_loc/site1 test_link
/ remote_loc / site1にある/またはルートから存在しないファイルを指すシンボリックリンクを$ PWDまたは現在の作業ディレクトリに作成することです
PWDが〜/ scripts /にある場合、これを使用する必要があります。
ln -s remote_loc/site1 test_link
それ以外の場合は、次のような完全な絶対パスを使用できます。
ln -s /home/yourusername/remote_loc/site1 test_link
2番目の問題:
引用:
シンボリックリンクを更新/上書きすることは不可能であることを、あちこちで読みました。そのため、ネットには矛盾した情報があります。誰が正しい?シンボリックリンクを更新/上書きできる場合、どうすればこれを達成できますか?
「だれが正しいか」という質問に答えるために、あなたが正確に何を読んだのか、それがどのように理解されたのかはわかりません。ただし、次のことが解決に役立つはずです。
- 更新できるもの、および
- 適切なスイッチを使用しないと更新できないもの。
ディレクトリではないターゲットでシンボリックリンクを更新します。
ln -sf:
-fまたは--forceは既存の宛先ファイルを削除します。これは、リンクのターゲットまたは宛先を更新するために使用されます。
例:
ln -sf /tmp/test /tmp/test.link; ls -go /tmp |grep test
-rw-r--r-- 1 0 Jun 8 17:19 test
lrwxrwxrwx 1 9 Jun 8 17:27 test.link -> /tmp/test
しかし、あなたが見ることができるように、絶対パスがln
の引数にある場合、それは絶対パスを与えます。現在の作業ディレクトリがリンクの親ディレクトリと異なる場合は、フルパスを指定する必要があります。
相対パス:
ln -sfr:
-rまたは--relativeは、リンクの場所に関連するシンボリックリンクを作成します。
例:
ln -sfr /tmp/test /tmp/test.link ; ls -go /tmp| grep test
-rw-r--r-- 1 0 Jun 8 17:19 test
lrwxrwxrwx 1 4 Jun 8 17:27 test.link -> test
ただし、ターゲットがディレクトリの場合、ディレクトリへのリンクの更新は機能しません。
例:
ln -sf /tmp/testdir /tmp/testdir.link ; ls -go /tmp |grep testdir
drwxr-xr-x 2 4096 Jun 8 17:48 testdir
lrwxrwxrwx 1 7 Jun 8 17:47 testdir.link -> testdir
ご覧のln
とおり、-rオプションを使用せずに上記の引数で指定された絶対パス名を使用しているにもかかわらず、シンボリックリンクは依然としてリンクに対して相対的です。
ディレクトリへのリンクを更新します。
ln -sfrn:
-nまたは--no-dereferenceは、ディレクトリへのシンボリックリンクの場合、LINK_NAMEを通常のファイルとして扱います。
例:
ln -sfn /tmp/testdir /tmp/testdir.link; ls -go /tmp| grep testdir
drwxr-xr-x 2 4096 Jun 8 17:48 testdir
lrwxrwxrwx 1 12 Jun 8 17:48 testdir.link -> /tmp/testdir
対照的に:
ln -sfnr /tmp/testdir /tmp/testdir.link; ls -go /tmp| grep testdir
drwxr-xr-x 2 4096 Jun 8 17:48 testdir
lrwxrwxrwx 1 7 Jun 8 17:48 testdir.link -> testdir
unlink
代わりに使用することをお勧めしますrm
。ではunlink
、あなた間違ったスイッチを使用して、ソースディレクトリ内のファイルを失うことを危険にさらすことはありません。