Com links simbólicos, as ferramentas têm duas coisas que podem fazer:
- Tratar o symlink como um link simbólico ("preservando sua natureza") ou
- Tratar o symlink como o tipo de arquivo para o qual ele aponta.
Dizer que -H
"preserva sua natureza" não é uma contradição. Considere a alternativa. Se você usar -L
, quaisquer links symlinks cp
serão abertos e seu conteúdo copiado para o nome do arquivo de destino. Então a fonte era um symlink, mas sua cópia não é um link simbólico. Então, "perdeu sua natureza como um link simbólico".
Considere
$ 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 "$@" | \
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