シンボリック リンクを使用すると、ツールでできることが 2 つあります:
<オール>
-H
と言って 「その性質を維持する」ことは矛盾ではありません。代替案を検討してください。 -L
を使用する場合 、シンボリックリンク cp
検索結果が開かれ、その内容がターゲット ファイル名にコピーされます。したがって、ソースはシンボリック リンクでしたが、そのコピーはシンボリック リンクではありません。そのため、「シンボリック リンクとしての性質を失った」のです。
考慮
$ mkdir subdir
$ echo "some contents" > subdir/file
$ ln -s file subdir/link
# definition of "list", the abbreviated ls -l output used below
$ list() { ls -l "[email protected]" | \
awk '$0 !~ /^total/ { printf "%s %s\t%s %s %s\n", $1, $5, $9, $10, $11 }' ; }
$ list subdir
-rw-rw-r-- 14 file
lrwxrwxrwx 4 link -> file
$ cp -rH subdir subdir-with-H
$ list subdir-with-H
-rw-rw-r-- 14 file
lrwxrwxrwx 4 link -> file
$ cp -rL subdir subdir-with-L
$ list subdir-with-L
-rw-rw-r-- 14 file
-rw-rw-r-- 14 link
-L
の動作の違い そして -H
-r
のときに来る も指定されています。 cp
-L -r
のサブディレクトリにシンボリックリンクを作成しません -H -r
を使えばそうなる .