Що таке повна назва шляху?


21

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


Чи можете ви запитати "чи можливо написати команду, яка відображатиме список файлів з їх іменами?" в іншому новому питанні ?
Брайам

Відповіді:


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розкриває фактичний шлях м'яких посилань
ламіно

7

Повна назва шляху дійсно означає повний шлях до цього файлу чи папки з /каталогу файлової системи .

Наприклад, повний шлях до вашого сценарію:

/home/your_username/my_script

Або повна назва шляху до grepвиконуваного файлу

/bin/grep

Що стосується ./my_scriptсимволу, то цей символ .позначає поточний каталог, тому ви фактично говорите "Подивіться під поточним каталогом файл чи папку з назвою my_script"


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.


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файл , ми повинні зробити висновок, що це відносний шлях.

Відносний шлях є шляхом щодо робочої директорії користувача або додатків, тому повний абсолютний шлях не повинен бути наданий.


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

Більшу частину цієї інформації було отримано з „ Як отримати доступ до файлів Bash Ubuntu в Windows” (і до вашого системного диска Windows на Bash)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.