j'ai
link -> file
je fais
find -L . -name 'link'
Et obtenir
./link
Pourquoi donc?
l'homme trouve dit:
-L: Suivre les liens symboliques. Lorsque find examine ou imprime des informations sur les fichiers, les informations utilisées doivent être extraites des propriétés du fichier vers lequel pointe le lien, et non du lien lui-même (à moins qu'il s'agisse d'un lien symbolique rompu ou que find ne puisse pas examiner le fichier. vers lequel le lien pointe).
La règle générale est que si une commande fonctionne sur des liens (c’est-à-dire des entrées de répertoire qui sont des pointeurs d’inodes), elle traite alors les liens symboliques comme tels, plutôt que comme l’objet vers lequel le lien pointe. Sinon, la commande agit sur ce que le lien symbolique pointe vers. Ainsi
cp
suit les liens symboliques par défaut et copie le contenu du fichier pointé par le lien. Mais lorsque vous demandezcp
de traiter les entrées du répertoire en spécifiant-R
, il ne suit plus les liens symboliques.mv
fonctionne toujours avec les entrées de répertoire, et ne suit donc jamais les liens symboliques.L'
find
activité normale de la commande est d'opérer sur les entrées de l'annuaire, les liens symboliques ne sont donc pas suivis par défaut. L'ajout de-L
causesfind
à suivre les liens symboliques pour toutes les propriétés, à l' exception de celle qui ne peut être ignorée lors de la recherche dans le répertoire, est le nom. L'un des objectifs defind -name
est de fournir une entrée pour des commandes telles quemv
etrm
qui agissent sur les entrées de répertoire. Il y aurait des résultats désagréables et surprenants si vousfind -L dir -name
pouviez produire des noms pointant hors de l'arborescence de répertoires sur laquelle est enracinédir
.la source
There would be unpleasant and surprising results if
trouver -L dir -nom` pourrait produire des noms pointant hors de l'arborescence de répertoires dont le répertoire racine est dir.` => ne devrait-il pas en être autrement: il y aurait désagréable ... sifind dir -name pattern
...? parce que l'ajout de -L permet de pointer vers uncp -R
pour copier des choses sous un lien symbolique?