Я использую команду 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
Вы дали 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
Вы дали 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
Это потому, что вы даете ему путь, которого не существует, поэтому он просто печатает текущий каталог и все, что вы ему дали, считая, что это будет путь. Обратите внимание, что man-страница указывает, что:
Печать разрешенного абсолютного имени файла; все, кроме последнего компонента должны существоватьТаким образом, он позволяет выполнять с несуществующей целью. Для иллюстрации рассмотрим следующие примеры:
$ pwd
/home
$ ls
lost+found terdon
$ realpath terdon
/home/terdon
$ realpath nonExistentDir
/home/nonExistentDir
Или, чтобы дублировать то, что вы сделали:
$ pwd
/home/terdon
$ realpath terdon
/home/terdon/terdon
Нет, он только сообщает вам, что путь к (возможно, несуществующему) файлу yosefkl, расположенному в текущем каталоге (/homes/yosefkl), есть /homes/yosefkl/yosefkl. Попробуйте
realpath "$PWD"
Нет, он только сообщает вам, что путь к (возможно, несуществующему) файлу yosefkl, расположенному в текущем каталоге (/homes/yosefkl), есть /homes/yosefkl/yosefkl. Попробуйте
realpath "$PWD"
Это потому, что вы даете ему путь, которого не существует, поэтому он просто печатает текущий каталог и все, что вы ему дали, считая, что это будет путь. Обратите внимание, что man-страница указывает, что:
Печать разрешенного абсолютного имени файла; все, кроме последнего компонента должны существоватьТаким образом, он позволяет выполнять с несуществующей целью. Для иллюстрации рассмотрим следующие примеры:
$ pwd
/home
$ ls
lost+found terdon
$ realpath terdon
/home/terdon
$ realpath nonExistentDir
/home/nonExistentDir
Или, чтобы дублировать то, что вы сделали:
$ pwd
/home/terdon
$ realpath terdon
/home/terdon/terdon
Нет, он только сообщает вам, что путь к (возможно, несуществующему) файлу yosefkl, расположенному в текущем каталоге (/homes/yosefkl), есть /homes/yosefkl/yosefkl. Попробуйте
realpath "$PWD"
Это потому, что вы даете ему путь, которого не существует, поэтому он просто печатает текущий каталог и все, что вы ему дали, считая, что это будет путь. Обратите внимание, что man-страница указывает, что:
Печать разрешенного абсолютного имени файла; все, кроме последнего компонента должны существоватьТаким образом, он позволяет выполнять с несуществующей целью. Для иллюстрации рассмотрим следующие примеры:
$ pwd
/home
$ ls
lost+found terdon
$ realpath terdon
/home/terdon
$ realpath nonExistentDir
/home/nonExistentDir
Или, чтобы дублировать то, что вы сделали:
$ pwd
/home/terdon
$ realpath terdon
/home/terdon/terdon