たとえば、私のディレクトリは次のようになります。
lib
|
+--foo.so
+--bar.so -> bar.so.1.0.0.0
+--bar.so.1.0.0.0
これらの両方の方法は常に同じですか?
私がこの質問をする理由は、UNIXが実際のファイルにコピーされることを発見したからです。
cp -r lib /path/to/
このような新しいディレクトリ:
/path/to/lib
|
+--foo.so
+--bar.so
+--bar.so.1.0.0.0
たとえば、私のディレクトリは次のようになります。
lib
|
+--foo.so
+--bar.so -> bar.so.1.0.0.0
+--bar.so.1.0.0.0
これらの両方の方法は常に同じですか?
私がこの質問をする理由は、UNIXが実際のファイルにコピーされることを発見したからです。
cp -r lib /path/to/
このような新しいディレクトリ:
/path/to/lib
|
+--foo.so
+--bar.so
+--bar.so.1.0.0.0
soとの違いls -sは、ファイルとシンボリックリンクの違いです。シンボリックリンクは他のファイルへのエイリアスのようなものであり、それらに対する操作によってリンクされたファイルが変更されます。これを行うcpと、リンク名をファイル名としてターゲットディレクトリにリンクファイルがコピーされます。つまり、シンボリックリンクを開いてコピーするときにリンクファイルが読み取られます。したがって、リンクを失い、代わりにリンクされたファイルのコピーを取得します。-Pコマンドのオプションを使用するとcp、シンボリックリンク情報を保持できます。
cp -P lib /path/to/