Выход Realpath включает в себя вход

Я использую команду realpath, но всегда добавляет исходный вход в конце пути:

$ pwd /homes/yosefkl $ realpath yosefkl /homes/yosefkl/yosefkl
9
задан 27 December 2017 в 13:52

9 ответов

Вы дали 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
17
ответ дан 22 May 2018 в 15:54

Вы дали 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
17
ответ дан 18 July 2018 в 00:23

Вы дали 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
17
ответ дан 24 July 2018 в 17:12

Это потому, что вы даете ему путь, которого не существует, поэтому он просто печатает текущий каталог и все, что вы ему дали, считая, что это будет путь. Обратите внимание, что man-страница указывает, что:

Печать разрешенного абсолютного имени файла; все, кроме последнего компонента должны существовать

Таким образом, он позволяет выполнять с несуществующей целью. Для иллюстрации рассмотрим следующие примеры:

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

Или, чтобы дублировать то, что вы сделали:

$ pwd
/home/terdon
$ realpath terdon
/home/terdon/terdon
11
ответ дан 22 May 2018 в 15:54

Нет, он только сообщает вам, что путь к (возможно, несуществующему) файлу yosefkl, расположенному в текущем каталоге (/homes/yosefkl), есть /homes/yosefkl/yosefkl. Попробуйте

realpath "$PWD"
5
ответ дан 22 May 2018 в 15:54

Нет, он только сообщает вам, что путь к (возможно, несуществующему) файлу yosefkl, расположенному в текущем каталоге (/homes/yosefkl), есть /homes/yosefkl/yosefkl. Попробуйте

realpath "$PWD"
5
ответ дан 18 July 2018 в 00:23

Это потому, что вы даете ему путь, которого не существует, поэтому он просто печатает текущий каталог и все, что вы ему дали, считая, что это будет путь. Обратите внимание, что man-страница указывает, что:

Печать разрешенного абсолютного имени файла; все, кроме последнего компонента должны существовать

Таким образом, он позволяет выполнять с несуществующей целью. Для иллюстрации рассмотрим следующие примеры:

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

Или, чтобы дублировать то, что вы сделали:

$ pwd /home/terdon $ realpath terdon /home/terdon/terdon
11
ответ дан 18 July 2018 в 00:23

Нет, он только сообщает вам, что путь к (возможно, несуществующему) файлу yosefkl, расположенному в текущем каталоге (/homes/yosefkl), есть /homes/yosefkl/yosefkl. Попробуйте

realpath "$PWD"
5
ответ дан 24 July 2018 в 17:12

Это потому, что вы даете ему путь, которого не существует, поэтому он просто печатает текущий каталог и все, что вы ему дали, считая, что это будет путь. Обратите внимание, что man-страница указывает, что:

Печать разрешенного абсолютного имени файла; все, кроме последнего компонента должны существовать

Таким образом, он позволяет выполнять с несуществующей целью. Для иллюстрации рассмотрим следующие примеры:

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

Или, чтобы дублировать то, что вы сделали:

$ pwd /home/terdon $ realpath terdon /home/terdon/terdon
11
ответ дан 24 July 2018 в 17:12

Другие вопросы по тегам:

Похожие вопросы: