J'écris mon propre programme shell. Je suis actuellement en train d'implémenter la commande cd en utilisant chdir. Je veux mettre en œuvre le chdir avec les options ci-dessous:implémentation de la commande cd en utilisant chdir() dans linux
-P Ne pas suivre les liens symboliques
-L Suivre les liens symboliques (par défaut)
Je posté un question here previously asking to know if a path is a symbolic link or actual path. Mais avec cette information, je suis incapable d'obtenir des idées sur la façon de procéder avec le problème ci-dessus.
Merci
Avez-vous un bon cas d'utilisation pour cette fonctionnalité? Je ne pense pas que n'importe quel shell existant le fasse, et je pense que tous les utilisateurs le demandent, mais peut-être le sont-ils. Il semble juste que la complexité d'unix arcane sans beaucoup d'avantages pour l'utilisateur final. Lorsqu'un utilisateur final se soucie de savoir si un répertoire est ou n'est pas un lien symbolique, le lien symbolique "feature" échoue. Les utilisateurs finaux ne devraient pas s'en soucier. Bien que je puisse voir des cas d'utilisation plus valides pour les utilitaires de parcours de fichiers récursifs comme tar et scp ayant des options autour de ne pas suivre les liens symboliques, pour un shell interactif faisant un cd, la valeur n'est pas évidente. Juste curieux. –
Bash fournit 'cd -P' et' cd -L' (et par défaut 'cd -L'). Quand vous avez fait 'cd -P',' cd ..' vous emmène dans la hiérarchie physique du système de fichiers même si vous avez suivi un lien symbolique pour vous y rendre, mais si vous avez fait un 'cd -L' pour obtenir vous là, alors 'cd ..' coupe un élément du nom du lien symbolique pour vous faire monter d'un niveau. –