Я пишу свою собственную программу оболочки. В настоящее время я выполняю команду cd с помощью chdir. Я хочу реализовать Chdir с ниже вариантов:реализация команды cd с использованием chdir() в linux
-P Не следовать символическим ссылкам
-L Следовать по символическим ссылкам (по умолчанию)
Я отправил question here previously asking to know if a path is a symbolic link or actual path. Но с этой информацией я не могу получить никаких идей о том, как продолжить описанную выше проблему.
Благодаря
У вас есть хороший прецедент для этой функции? Я не думаю, что какая-либо существующая оболочка делает это, и я не думаю, что любые пользователи запрашивают это, но, возможно, это так. Просто похоже на сложную сложность unix без особых преимуществ для конечных пользователей. Когда конечный пользователь заботится о том, является ли каталог символической ссылкой или не является символической ссылкой, функция «Символ» не работает. Конечным пользователям все равно. Хотя я вижу более допустимые варианты использования для рекурсивных утилит обхода файлов, таких как tar и scp, имеющих параметры вокруг не следующих символических ссылок, для интерактивной оболочки, выполняющей cd, неясно, что это за значение. Просто любопытно. –
Bash предоставляет 'cd -P' и' cd -L' (и по умолчанию 'cd -L'). Когда вы делаете 'cd -P',' cd ..', вы поднимаете иерархию физической файловой системы, даже если вы следовали символической ссылке, чтобы получить вас там, но если вы сделали 'cd -L', чтобы получить вы там, затем 'cd ..' отбивает один элемент с именем символической ссылки, чтобы вы« подняли »уровень. –