Что такое полное имя пути?

21

Я хотел бы понять, что на самом деле означает полное имя пути. У меня есть файл в моем домашнем каталоге с именем my_script. Я предположил, что полный путь к файлу ./my_script, что означает, что он находится в корневой папке, но я не уверен. Может кто-нибудь, пожалуйста, просветите меня об этом?

sosytee
источник
Вы можете спросить: "Можно ли написать команду, которая будет отображать список файлов с их именами?" в другом новом вопросе ?
Брайам

Ответы:

30

Нет, ваше предположение неверно. Полный путь к my_scriptфайлу из вашей директории: /home/your_user_name/my_script. Когда вы печатаете ./my_scriptв терминале, вы фактически пытаетесь выполнить скрипт (если он исполняемый), и он будет выполняться только в том случае, если у вас есть текущий рабочий каталог /home/your_user_name/. Для выполнения скрипта вы также можете использовать полный путь к файлу, как я уже сказал /home/your_user_name/my_script.

Считается, что имя пути UNIX выглядит и ощущается как интернет-адрес, что приводит к совместимости. Полный путь к текущему рабочему каталогу можно найти в терминале с помощью следующей команды:

pwd

Чтобы узнать полный путь к домашней директории пользователя, вы можете использовать:

echo ~
echo $HOME
echo /home/$USER

Выше три команды эквивалентны.

Чтобы узнать полный путь к файлу, вы можете использовать readlinkкоманду. Например, в вашем случае:

cd ~
readlink -f my_script
Раду Рэдяну
источник
+1 readlinkпоказывает фактический путь мягких ссылок
lamino
7

Полный путь действительно означает полный путь к этому файлу или папке из /каталога файловой системы .

Например, полный путь к вашему скрипту:

/home/your_username/my_script

Или полный путь к grepисполняемому файлу

/bin/grep

Что касается ./my_scriptсимвола, то он .обозначает текущий каталог, поэтому вы на самом деле говорите: «Найдите в текущем каталоге файл или папку с именем my_script».

hytromo
источник
3

Чтобы понять полный путь, вы должны сначала знать отправную точку.

Корневой каталог /- это отправная точка операционных систем * nix. Он содержит все остальные каталоги как системы, так и пользователя.

Домашний каталог пользователя /home/USERNAME/или, ~/для краткости, содержит файлы и каталоги пользователя. Например, «Изображения», «Музыка», «Документы» и т. Д. На каждый из этих каталогов имеется ссылка, /home/USERNAME/DIRECTORYнапример, на «Документы» /home/USERNAME/Documents.

Как и в случае с каталогами, на файлы ссылаются аналогичным образом, например, на файл с именем, my_scriptрасположенным в домашнем каталоге пользователя, sosyteeможно ссылаться, используя полный путь /home/sosytee/my_scriptили ~/my_scriptдля краткости.

На файлы и каталоги можно ссылаться / обращаться к ним, используя их полные пути из любой точки системы. Кроме того, к ним можно получить доступ, используя только их имя, если оно находится в том же каталоге. Например, если пользователь во ~/время использования терминала, он может получить доступ к my_scriptфайлу с помощью просто my_script.

Кроме того, можно получить доступ к каталогам и файлам, используя только их имена, если они помещены в его переменную PATH. Вы можете увидеть, что хранится в PATH, используя echo $PATH.

Простые примеры того, как получить доступ к файлам с помощью командной строки:

  • Пользователь в настоящее время /home/USERNAME/и хочет использовать catкоманду для файла, расположенного по /home/USERNAME/Documentsимени foo.txt:

cat Documents/foo.txt

  • Пользователь внутри ~/Documentsи хочет запустить скрипт с именем foo.shрасположенного объявления ~/Scripts/Foo:

    sh ../Scripts/Foo/foo.sh

    или

    sh ~/Scripts/Foo/foo.sh

Конечно, это просто резюме.

Дальнейшая информация

Стеф К
источник
2

Полный путь - это путь от корневого каталога (т. Е. /). ./my_scriptявляется относительным именем пути, потому что путь дан относительно текущего каталога, который обозначен .. Так что, если вы находитесь в своем домашнем каталоге, полный путь s.th. как /home/sosytee/my_script. Для вашего домашнего каталога есть «ярлык» ~, то есть вы также можете написать ~/my_script. Но это, конечно, приведет к разным путям для каждого пользователя.

Чтобы увидеть полный путь вашего текущего вызова каталога pwd.

Nodebody
источник
2

Я предположил, что полное имя пути ./my_script

Нет. Этот путь относительно. Точка в начале указывает текущий каталог:

$ ls ./my_script
my_script
$ cd ..
$ ls ./my_script
ls: cannot access ./my_script: No such file or directory

Как видите, я изменил каталог и my_scriptне найден, что означает, что ./my_scriptэто не абсолютный путь.

Я предположил, что полный путь к файлу ./my_script, что означает, что он находится в корневой папке, но я не уверен.

Из Википедии :

[...] Полный или абсолютный путь - это путь, указывающий на одно и то же местоположение в одной файловой системе независимо от рабочего каталога или объединенных путей.

Поскольку ./my_scriptне выполняются условия, что всякий разmy_script , когда я могу найти файл , мы должны сделать вывод, что это относительный путь.

Относительный путь представляет собой путь относительно рабочей директории пользователя или приложений, поэтому полный абсолютный путь не должен быть предоставлен.

Braiam
источник
0

Здесь ... я предполагаю, что вы спрашиваете, потому что вы установили сервер Ubuntu на Windows ...

скопируйте этот код в проводник на windows %userprofile%\AppData\Local\Packages

это покажет вам домашнее местоположение ... его спрятано где-то в вашей системе

В этой папке дважды щелкните папку для дистрибутива Linux, файлы которого вы хотите просмотреть:

  1. Ubuntu: CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
  2. openSUSE Leap 42: 46932SUSE.openSUSELeap42.2_022rs5jcyhyac
  3. SUSE Linux Enterprise Server 1246932SUSE.SUSELinuxEnterpriseServer12SP2_022rs5jcyhyac

Имена этих папок могут немного измениться в будущем. Просто найдите папку, названную в честь дистрибутива Linux.

ваш дом будет под LocalState\rootfs\home

Большая часть этой информации была получена из Как получить доступ к вашим файлам Ubuntu Bash в Windows (и к вашему системному диску Windows в Bash)

Hammao
источник