Я використовую realpathкоманду, але вона завжди додає початковий вхід в кінці шляху:
$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl
Я використовую realpathкоманду, але вона завжди додає початковий вхід в кінці шляху:
$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl
Відповіді:
Ви дали realpathвідносний шлях до файлу в поточному каталозі.
Файл (який може бути каталогом) може існувати або не існувати. realpathне піклується за замовчуванням. Він повідомляє про шлях незалежно від того, чи існує його останній елемент.
Якщо ви хочете, щоб він повідомляв лише про існуючі контури, використовуйте -eпрапор:
zanna@toaster:~/playground$ realpath playground
/home/zanna/playground/playground
zanna@toaster:~/playground$ realpath ~/playground
/home/zanna/playground
zanna@toaster:~/playground$ realpath -e playground
realpath: playground: No such file or directory
Це тому, що ви даєте йому шлях, який не існує, тому він просто роздруковує поточний каталог і все, що ви йому дали, припускаючи, що це був би шлях. Зауважте, що на головній сторінці вказано, що:
Роздрукуйте дозвільне абсолютне ім'я файлу; всі, крім останнього компонента, повинні існувати
Таким чином, це дозволяє виконувати з неіснуючою ціллю. Для ілюстрації розглянемо ці приклади:
$ pwd
/home
$ ls
lost+found terdon
$ realpath terdon
/home/terdon
$ realpath nonExistentDir
/home/nonExistentDir
Або дублювати те, що ви зробили:
$ pwd
/home/terdon
$ realpath terdon
/home/terdon/terdon
realpath .