Jaka jest pełna nazwa ścieżki?


21

Chciałbym zrozumieć, co tak naprawdę oznacza pełna nazwa ścieżki. Mam plik w moim katalogu domowym o nazwie my_script. Zakładam, że pełna nazwa ścieżki to ./my_script, co oznacza, że ​​znajduje się ona w folderze głównym, ale nie jestem pewien. Czy ktoś może mnie oświecić?


Czy możesz zapytać „czy można napisać polecenie, które wyświetli listę plików z ich nazwami?” w innym nowym pytaniu ?
Braiam

Odpowiedzi:


30

Nie, twoje założenie jest błędne. Pełna nazwa ścieżki do my_scriptpliku z katalogu domowym jest: /home/your_user_name/my_script. Podczas pisania ./my_scriptw terminalu faktycznie próbujesz wykonać skrypt (jeśli jest wykonywalny) i zostanie on wykonany tylko wtedy, gdy bieżącym katalogiem roboczym jest /home/your_user_name/. Aby wykonać skrypt, możesz także użyć pełnej ścieżki do pliku, która jest, jak już powiedziałem /home/your_user_name/my_script.

Uważa się, że nazwa ścieżki w systemie UNIX wygląda i przypomina adresy internetowe, co powoduje zgodność. Pełną nazwę ścieżki bieżącego katalogu roboczego można znaleźć w terminalu za pomocą następującego polecenia:

pwd

Aby znaleźć pełną ścieżkę do katalogu domowego użytkownika, możesz użyć:

echo ~
echo $HOME
echo /home/$USER

Powyższe trzy polecenia są równoważne.

Aby znaleźć pełną nazwę ścieżki do pliku, możesz użyć readlinkpolecenia. Na przykład w twoim przypadku:

cd ~
readlink -f my_script

+1 readlinkujawnia rzeczywistą ścieżkę miękkich linków
lamino,

7

Pełna nazwa ścieżki naprawdę oznacza pełną ścieżkę do tego pliku lub folderu z katalogu systemu plików /.

Na przykład pełna ścieżka do skryptu to:

/home/your_username/my_script

Lub pełna nazwa ścieżki do greppliku wykonywalnego to

/bin/grep

Jeśli chodzi o ./my_script, symbol .oznacza bieżący katalog, więc na razie mówisz „Szukaj w bieżącym katalogu pliku lub folderu o nazwie mój_skrypt”


3

Aby zrozumieć pełną ścieżkę, musisz najpierw znać punkt początkowy.

Katalog główny /jest punktem początkowym systemów operacyjnych opartych na * nix. Zawiera wszystkie inne katalogi, zarówno systemowe, jak i użytkownika.

Katalog domowy użytkownika /home/USERNAME/lub ~/w skrócie zawiera plików i katalogów użytkownika. Na przykład Obrazy, Muzyka, Dokumenty itp. Każdy z tych katalogów jest oznaczony tak, jak /home/USERNAME/DIRECTORYna przykład Dokumenty /home/USERNAME/Documents.

Podobnie jak w przypadku katalogów, pliki są przywoływane w ten sam sposób, na przykład do pliku o nazwie my_scriptznajdującej się w katalogu osobistym użytkownika sosyteemożna się odwoływać przy użyciu pełnej ścieżki /home/sosytee/my_scriptlub ~/my_scriptw skrócie.

Do plików i katalogów można uzyskać dostęp / korzystając z ich pełnych ścieżek z dowolnego miejsca w systemie. Dodatkowo można uzyskać do nich dostęp, używając tylko ich nazwy, jeśli znajduje się w tym samym katalogu. Na przykład, jeśli użytkownik jest w ~/trakcie korzystania z terminala, może uzyskać dostęp do my_scriptpliku, używając tylko my_script.

Dodatkowo można uzyskać dostęp do katalogów i plików, używając tylko ich nazw, jeśli są umieszczone w jego zmiennej PATH. Możesz zobaczyć, co jest przechowywane w PATH, używając echo $PATH.

Proste przykłady uzyskiwania dostępu do plików za pomocą wiersza polecenia:

  • Użytkownik jest obecnie na stronie /home/USERNAME/i chce użyć catpolecenia w pliku o /home/USERNAME/Documentsnazwie foo.txt:

cat Documents/foo.txt

  • Użytkownik jest w środku ~/Documentsi chce uruchomić skrypt o nazwie foo.shzlokalizowana reklama ~/Scripts/Foo:

    sh ../Scripts/Foo/foo.sh

    lub

    sh ~/Scripts/Foo/foo.sh

z całą pewnością jest to tylko podsumowanie.

Dalsza informacja


2

Pełna nazwa ścieżki jest ścieżką z katalogu głównego (tj /.). ./my_scriptjest względną nazwą ścieżki, ponieważ ścieżka jest podana w stosunku do bieżącego katalogu, który jest oznaczony przez .. Więc jeśli jesteś w swoim katalogu domowym, pełna ścieżka to s.th. jak /home/sosytee/my_script. W twoim katalogu domowym znajduje się „skrót” ~, co oznacza, że ​​możesz także pisać ~/my_script. Ale to oczywiście rozwiąże inną ścieżkę dla każdego użytkownika.

Aby zobaczyć pełną ścieżkę bieżącego połączenia z katalogu pwd.


2

Zakładam, że pełna nazwa ścieżki to ./my_script

Nie, nie jest. Ta ścieżka jest względna. Punkt na początku wskazuje bieżący katalog:

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

Jak widać, zmieniłem katalog i my_scriptnie można go znaleźć, co oznacza, że ./my_scriptnie jest to ścieżka bezwzględna.

Zakładam, że pełna nazwa ścieżki to ./my_script, co oznacza, że ​​znajduje się ona w folderze głównym, ale nie jestem pewien.

Z Wikipedii :

[...] Pełna ścieżka lub ścieżka bezwzględna to ścieżka wskazująca tę samą lokalizację w jednym systemie plików, niezależnie od katalogu roboczego lub ścieżek połączonych.

Ponieważ ./my_scriptnie wypełniam warunku, że gdy tylko będę mógł znaleźć my_scriptplik , powinniśmy wywnioskować, że jest to ścieżka względna.

Względna ścieżka jest ścieżką względną do katalogu roboczym użytkownika lub aplikacji, więc pełna ścieżka bezwzględna nie będą musiały być podane.


0

Tutaj ... zakładam, że pytasz, ponieważ zainstalowałeś serwer Ubuntu w systemie Windows ...

skopiuj ten kod do eksploratora folderów w systemie Windows %userprofile%\AppData\Local\Packages

pokaże Ci lokalizację domu ... jest ukryta gdzieś w twoim systemie

W tym folderze kliknij dwukrotnie folder dystrybucji systemu Linux, którego pliki chcesz wyświetlić:

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

Nazwy tych folderów mogą się nieznacznie zmienić w przyszłości. Po prostu poszukaj folderu o nazwie po dystrybucji Linux.

twój dom będzie pod LocalState\rootfs\home

Większość tych informacji pochodzi z Jak uzyskać dostęp do plików Ubuntu Bash w systemie Windows (i dysku systemowego Windows w Bash)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.