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

17

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

    
задан sosytee 26.08.2013 в 13:11
источник

5 ответов

20

Нет, ваше предположение неверно. Полное имя пути для файла 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
    
ответ дан Radu Rădeanu 26.08.2013 в 14:46
источник
6

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

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

/home/your_username/my_script

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

/bin/grep

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

    
ответ дан hakermania 26.08.2013 в 13:16
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 , расположенный ad ~/Scripts/Foo :

    sh ../Scripts/Foo/foo.sh

    или

    sh ~/Scripts/Foo/foo.sh

в любом случае это просто сводка.

Дополнительная информация

ответ дан Stef K 26.08.2013 в 13:42
2

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

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

    
ответ дан Nodebody 26.08.2013 в 13:17
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 , мы должны сделать вывод, что это относительный путь.

  

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

    
ответ дан Braiam 27.08.2013 в 17:12