Вихід Realpath включає вхід


9

Я використовую realpathкоманду, але вона завжди додає початковий вхід в кінці шляху:

$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl

Ви запитуєте каталог у вашому поточному робочому каталозі. Спробуйте замість цього:realpath .
penguin359

Відповіді:


17

Ви дали 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

12

Це тому, що ви даєте йому шлях, який не існує, тому він просто роздруковує поточний каталог і все, що ви йому дали, припускаючи, що це був би шлях. Зауважте, що на головній сторінці вказано, що:

Роздрукуйте дозвільне абсолютне ім'я файлу; всі, крім останнього компонента, повинні існувати

Таким чином, це дозволяє виконувати з неіснуючою ціллю. Для ілюстрації розглянемо ці приклади:

$ pwd
/home
$ ls
lost+found  terdon
$ realpath terdon
/home/terdon
$ realpath nonExistentDir
/home/nonExistentDir

Або дублювати те, що ви зробили:

$ pwd
/home/terdon
$ realpath terdon
/home/terdon/terdon

5

Ні, це лише говорить вам про те, що шлях до (мабуть, неіснуючого) файлу, що yosefklзнаходиться в поточному каталозі ( /homes/yosefkl), є /homes/yosefkl/yosefkl. Спробуйте

realpath "$PWD"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.