Я хотел бы понять, что на самом деле означает полное имя пути. У меня есть файл в моем домашнем каталоге с именем my_script. Я предположил, что полный путь к файлу ./my_script, что означает, что он находится в корневой папке, но я не уверен. Может кто-нибудь, пожалуйста, просветите меня об этом?
command-line
paths
sosytee
источник
источник
Ответы:
Нет, ваше предположение неверно. Полный путь к
my_script
файлу из вашей директории:/home/your_user_name/my_script
. Когда вы печатаете./my_script
в терминале, вы фактически пытаетесь выполнить скрипт (если он исполняемый), и он будет выполняться только в том случае, если у вас есть текущий рабочий каталог/home/your_user_name/
. Для выполнения скрипта вы также можете использовать полный путь к файлу, как я уже сказал/home/your_user_name/my_script
.Считается, что имя пути UNIX выглядит и ощущается как интернет-адрес, что приводит к совместимости. Полный путь к текущему рабочему каталогу можно найти в терминале с помощью следующей команды:
Чтобы узнать полный путь к домашней директории пользователя, вы можете использовать:
Выше три команды эквивалентны.
Чтобы узнать полный путь к файлу, вы можете использовать
readlink
команду. Например, в вашем случае:источник
readlink
показывает фактический путь мягких ссылокПолный путь действительно означает полный путь к этому файлу или папке из
/
каталога файловой системы .Например, полный путь к вашему скрипту:
Или полный путь к
grep
исполняемому файлуЧто касается
./my_script
символа, то он.
обозначает текущий каталог, поэтому вы на самом деле говорите: «Найдите в текущем каталоге файл или папку с именем my_script».источник
Чтобы понять полный путь, вы должны сначала знать отправную точку.
Корневой каталог
/
- это отправная точка операционных систем * 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
Конечно, это просто резюме.
Дальнейшая информация
Руководство Bash для начинающих , автор Machtelt Garrels
Подробнее о PATH здесь
О структуре каталогов Unix
источник
Полный путь - это путь от корневого каталога (т. Е.
/
)../my_script
является относительным именем пути, потому что путь дан относительно текущего каталога, который обозначен.
. Так что, если вы находитесь в своем домашнем каталоге, полный путь s.th. как/home/sosytee/my_script
. Для вашего домашнего каталога есть «ярлык»~
, то есть вы также можете написать~/my_script
. Но это, конечно, приведет к разным путям для каждого пользователя.Чтобы увидеть полный путь вашего текущего вызова каталога
pwd
.источник
Нет. Этот путь относительно. Точка в начале указывает текущий каталог:
Как видите, я изменил каталог и
my_script
не найден, что означает, что./my_script
это не абсолютный путь.Из Википедии :
Поскольку
./my_script
не выполняются условия, что всякий разmy_script
, когда я могу найти файл , мы должны сделать вывод, что это относительный путь.источник
Здесь ... я предполагаю, что вы спрашиваете, потому что вы установили сервер Ubuntu на Windows ...
скопируйте этот код в проводник на windows
%userprofile%\AppData\Local\Packages
это покажет вам домашнее местоположение ... его спрятано где-то в вашей системе
В этой папке дважды щелкните папку для дистрибутива Linux, файлы которого вы хотите просмотреть:
Имена этих папок могут немного измениться в будущем. Просто найдите папку, названную в честь дистрибутива Linux.
ваш дом будет под
LocalState\rootfs\home
Большая часть этой информации была получена из Как получить доступ к вашим файлам Ubuntu Bash в Windows (и к вашему системному диску Windows в Bash)
источник