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ć?
command-line
paths
sosytee
źródło
źródło
Odpowiedzi:
Nie, twoje założenie jest błędne. Pełna nazwa ścieżki do
my_script
pliku z katalogu domowym jest:/home/your_user_name/my_script
. Podczas pisania./my_script
w 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:
Aby znaleźć pełną ścieżkę do katalogu domowego użytkownika, możesz użyć:
Powyższe trzy polecenia są równoważne.
Aby znaleźć pełną nazwę ścieżki do pliku, możesz użyć
readlink
polecenia. Na przykład w twoim przypadku:źródło
readlink
ujawnia rzeczywistą ścieżkę miękkich linkówPeł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:
Lub pełna nazwa ścieżki do
grep
pliku wykonywalnego toJeś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”źródło
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/DIRECTORY
na 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_script
znajdującej się w katalogu osobistym użytkownikasosytee
można się odwoływać przy użyciu pełnej ścieżki/home/sosytee/my_script
lub~/my_script
w 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 domy_script
pliku, używając tylkomy_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:
/home/USERNAME/
i chce użyćcat
polecenia w pliku o/home/USERNAME/Documents
nazwie foo.txt:cat Documents/foo.txt
Użytkownik jest w środku
~/Documents
i chce uruchomić skrypt o nazwiefoo.sh
zlokalizowana reklama~/Scripts/Foo
:sh ../Scripts/Foo/foo.sh
lub
sh ~/Scripts/Foo/foo.sh
z całą pewnością jest to tylko podsumowanie.
Dalsza informacja
Przewodnik Bash dla początkujących autorstwa Machtelta Garrelsa
Więcej o ŚCIEŻCE tutaj
O strukturze katalogów Uniksa
źródło
Pełna nazwa ścieżki jest ścieżką z katalogu głównego (tj
/
.)../my_script
jest 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
.źródło
Nie, nie jest. Ta ścieżka jest względna. Punkt na początku wskazuje bieżący katalog:
Jak widać, zmieniłem katalog i
my_script
nie można go znaleźć, co oznacza, że./my_script
nie jest to ścieżka bezwzględna.Z Wikipedii :
Ponieważ
./my_script
nie wypełniam warunku, że gdy tylko będę mógł znaleźćmy_script
plik , powinniśmy wywnioskować, że jest to ścieżka względna.źródło
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ć:
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)
źródło