Я хотел бы понять, что на самом деле означает полное имя пути. У меня есть файл в моем домашнем каталоге с именем my_script. Я предположил, что полный путь к файлу ./my_script, что означает, что он находится в корневой папке, но я не уверен. Может кто-нибудь, пожалуйста, просветите меня об этом?
Нет, Ваше предположение является неправильным. Название полного пути 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
Полный путь действительно означает полный путь к этому файлу или папке из каталога /
файловой системы.
Например, полный путь к вашему сценарию:
/home/your_username/my_script
Или полный путь к исполняемому файлу grep
:
/bin/grep
Что касается ./my_script
] символ .
обозначает текущий каталог, поэтому вы фактически говорите: «Найдите в текущем каталоге файл или папку с именем my_script»
Для понимания полного пути необходимо сначала знать начальную точку.
Корневой каталог /
это - начальная точка *, отклоняют базирующиеся операционные системы. Это содержит все другие каталоги и система и пользователь.
Корневой каталог пользователя /home/USERNAME/
или ~/
если коротко, содержит файлы и каталоги пользователя. Например, Изображения, Музыка, Документы, и т.д. На каждый из этих каталогов ссылаются как /home/USERNAME/DIRECTORY
например, Документы расположены в /home/USERNAME/Documents
.
Как с каталогами, на файлы ссылаются таким же образом, например, названный файл my_script
расположенный в корневом каталоге пользователя sosytee
может быть сослан с помощью полного пути /home/sosytee/my_script
или ~/my_script
если коротко.
И файлы и каталоги могут быть сосланы/получены доступ с помощью их полных путей отовсюду в системе. Дополнительно можно получить доступ к ним использующий только их имя, если это находится в том же каталоге. Например, если пользователь в ~/
при использовании терминала он может получить доступ my_script
файл при помощи просто my_script
.
Дополнительно можно получить доступ к каталогам и файлам при помощи их имени только, если они размещаются в его переменную ПУТИ. Вы видите то, что является хранилищем в ПУТИ при помощи 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
любой ценой это - просто сводка.
Дополнительная информация
Руководство Bash для новичков, Machtelt Garrels
Больше о ПУТИ здесь
Полный путь - это путь от корневого каталога (т. Е. /
). ./my_script
является относительным именем пути, потому что путь дан относительно текущего каталога, который обозначен .
. Так что, если вы находитесь в своем домашнем каталоге, полный путь s.th. как /home/sosytee/my_script
. Для вашего домашнего каталога есть «ярлык» ~
, то есть вы также можете написать ~/my_script
. Но это, конечно, приведет к разным путям для каждого пользователя.
Чтобы увидеть полный путь вашего текущего вызова каталога pwd
.
Я предположил, что полный путь: ./my_script
blockquote>Нет, это не так. Этот путь относительно. Точка в начале указывает текущий каталог:
$ ls ./my_script my_script $ cd .. $ ls ./my_script ls: cannot access ./my_script: No such file or directory
Как видите, я изменил каталог, и
my_script
не найден, что означает, что./my_script
не является абсолютным путем. [ 119]Я предположил, что полный путь - ./my_script, что означает, что он находится в корневой папке, но я не уверен.
blockquote>Из Википедии :
[...] Полный путь или абсолютный путь - это путь, который указывает на одно и то же расположение в одной файловой системе независимо от рабочего каталога или объединенных путей.
blockquote>Поскольку
./my_script
не заполняют условие, что всякий раз, когда я могу найти файлmy_script
, следует сделать вывод, что это относительный путь.Относительный путь - это путь относительно рабочего каталога пользователя или приложения, поэтому полный абсолютный путь указывать не нужно.
BLOCKQUOTE>
Здесь... я предполагаю, что Вы спрашиваете, потому что Вы установили сервер Ubuntu на окнах...
копия этот код к Вашему проводнику папки на окнах %userprofile%\AppData\Local\Packages
, который покажет Вам исходное расположение... его скрытое где-нибудь в Вашей системе
В этой папке, дважды щелкните по папке для дистрибутива Linux, файлы которого Вы хотите просмотреть:
названия этих папок могут немного измениться в будущем. Просто ищите папку, названную в честь дистрибутива Linux.
Ваш дом будет находиться под LocalState\rootfs\home
, большая часть этой информации была получена от , Как Получить доступ к Вашим Файлам Bash Ubuntu в Windows (и Ваш Windows System Drive в Bash)