yo tengo
link -> file
hago
find -L . -name 'link'
Y obten
./link
¿Porqué es eso?
el hombre encuentra dice:
-L: Seguir enlaces simbólicos. Cuando find examina o imprime información sobre archivos, la información utilizada se tomará de las propiedades del archivo al que apunta el enlace, no del enlace en sí (a menos que sea un enlace simbólico roto o find no pueda examinar el archivo a que apunta el enlace).
La regla general es que si un comando opera en enlaces (es decir, entradas de directorio, que son punteros a inodes), el comando trata los enlaces simbólicos como ellos mismos en lugar de como el objeto al que apunta el enlace. De lo contrario, el comando opera en lo que apunta el enlace simbólico. Por lo tanto,
cp
sigue los enlaces simbólicos de forma predeterminada y copia el contenido del archivo señalado por el enlace. Pero cuando solicitacp
lidiar con entradas de directorio especificando-R
, deja de seguir enlaces simbólicos.mv
siempre funciona con entradas de directorio, por lo que nunca sigue enlaces simbólicos.La
find
actividad normal del comando es operar en entradas de directorio, por lo que los enlaces simbólicos no se siguen de forma predeterminada. Agregar-L
causasfind
para seguir enlaces simbólicos para todas las propiedades, excepto la que no se puede ignorar al hacer una búsqueda en el directorio, el nombre. Uno de los propósitos defind -name
es proporcionar entrada para comandos comomv
yrm
, que operan en entradas de directorio. Habría resultados desagradables y sorprendentes sifind -L dir -name
pudiera producir nombres que apuntaran fuera del árbol de directorios en el que se arraigadir
.fuente
There would be unpleasant and surprising results if
find -L dir -name` podría producir nombres que apunten fuera del árbol de directorios enraizado en dir.` => ¿no debería ser eso: habría desagradable ... sifind dir -name pattern
...? porque agregar -L permite apuntar a un directorio externocp -R
a copiar cosas bajo un enlace simbólico?