/ opt/minergate-cliにアップデートソフトウェアがあります。 mvコマンドを使用して、ディレクトリminergate-cliの名前をminergate-oldに変更し、同じディレクトリ名の新しいバージョンのソフトウェアをインストールしました。
古いプログラムがあり、同じ名前の新しいプログラムがあり、それが「マイナーゲート」であると仮定すると、プログラムマイナーゲートを指すシンボリックリンクはどうなりますか?
彼らは、旧マイナーに住んでいる元のプログラムを指しているのでしょうか、それとも新しいプログラムminergate.cliにリンクが移動しましたか?
シンボリックリンクは、それが指すファイルのnameを保持するだけです。 (ヒント、ls -l symlink
を実行し、そのファイルサイズに注意してください)。ターゲットファイルを削除した後、同じ名前の新しいファイルを作成すると、シンボリックリンクは新しいファイルの内容を参照して、引き続き機能します。
$ echo "first file" > file
$ ln -s file symlink
$ ls -l symlink
lrwxrwxrwx 1 jackman jackman 4 Oct 23 23:33 symlink -> file
# ...........................^=size ...................^^^^ target is 4 chars
$ cat symlink
first file
$ mv file file.old
$ echo "this is the second" > file
$ cat symlink
this is the second
ターゲットファイルのinodeを参照する「ハード」リンクについて考えるかもしれません。
$ echo "first line" > file
$ ln file hardlink
$ ls -li hardlink file
1078415 -rw-r--r-- 2 jackman jackman 11 Oct 23 23:38 file
1078415 -rw-r--r-- 2 jackman jackman 11 Oct 23 23:38 hardlink
$ cat hardlink
first line
$ mv file file.old
$ echo "this is the new contents" > file
$ cat hardlink
first line
$ ls -li hardlink file file.old
1059446 -rw-r--r-- 1 jackman jackman 25 Oct 23 23:39 file
1078415 -rw-r--r-- 2 jackman jackman 11 Oct 23 23:38 file.old
1078415 -rw-r--r-- 2 jackman jackman 11 Oct 23 23:38 hardlink
ここでhardlink
は、元のfile
ファイルと同じファイルです。
シンボリックリンクが指すファイルを移動すると、シンボリックリンクが壊れます。削除して新しいものを作成する必要があります。 https://unix.stackexchange.com/a/18365/85039 も参照してください