Выход 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.