Zwykle oznacza to, że katalog osobisty użytkownika, np. ~mike/Byłby mikekatalogiem ~/osobistym użytkownika , byłby twoim własnym katalogiem domowym. Nie jest jednak dla mnie jasne, czy ~/i ~mike/należy je uważać za absolutne czy względne; wydaje się, że zależy to od podanej definicji (jeśli ktoś może wymyślić autorytatywne odniesienie, prosimy o komentarz).
Zauważ, że mówię tutaj o systemach opartych na Uniksie.
Są absolutne, ponieważ są synonimami ścieżek bezwzględnych: w systemie UNIX ścieżkę bezwzględną można wywnioskować z zawartości /etc/loginpliku. Rozbudowa jest tradycyjnie wykonywana przez powłokę, ale zrobi to również każdy język, który ma pretensje do „skryptowania”.
Charles Stewart
2
+1: Nie wiedziałem o tym ~username/.
Wuffers
2
Co ciekawe, Windows PowerShell akceptuje również ~jako synonim domu directoy użytkownika.
Joey,
1
Jeffery Snover powiedział, że PowerShell był pierwotnie oparty na VIM / EMAC
Anonymous Type
1
@Charles Stewart prawdopodobnie przynajmniej ~ / jest względny, ponieważ zależy od kontekstu użytkownika. Również niektóre odniesienia definiują ścieżkę bezwzględną jako podaną z katalogu głównego systemu plików, co oczywiście nie jest. Jeśli masz odniesienie do swojego oświadczenia, udostępnij je!
Adrian Mouat,
21
W rzeczywistości obie odpowiedzi Adriana Mouata i studiohack są prawdziwe.
W systemach operacyjnych z ograniczoną konwencją nazewnictwa (starsza wersja Windows / DOS itp.) Oznacza to długą nazwę.
e.g. "c:\program files\" is equivalent to "c:\progra~1\"
W niektórych systemach operacyjnych (mianowicie Unix) oznacza to katalog domowy (i może być postrzegany jako ścieżka absolutna, ale nie kanoniczna). e.g."/a/vol01/usr/mike/" might be shortened to "~/mike/"
* gdzie „usr” to katalog domowy.
W kontekście skryptów kompilacji jest to prawdopodobnie wersja uniksowa.
Charles Stewart
2
Ścieżki uniksowe zwykle używają ukośników do przodu, a nie odwrotnych ukośników.
Torben Gundtofte-Bruun
@torbengb, true ... opps
Eran
1
Mała poprawka do doskonałej odpowiedzi Xenorose. Nazwy plików, takie jak „progra ~ 1”, nie są przeznaczone dla starszych systemów operacyjnych. Mój system Windows 7 nadal ich używa. (Aby sprawdzić katalog / d.). Jest to starsza funkcja, która obsługuje stare oprogramowanie, które nie wie o długich nazwach plików we współczesnych systemach. Stare oprogramowanie uważa, że wszystkie nazwy plików są zgodne z konwencją 8.3 . Gdy nazwa pliku nie działa z tą konwencją, system plików automatycznie tworzy drugą, zgodną z wersją 8.3 nazwę.
Isaac Rabinovitch
12
W wielu systemach plików nazwa pliku będzie zawierać tyldy (~) w każdym elemencie nazwy, który jest zbyt długi, aby był zgodny z zasadami nazewnictwa 8.3.
Hmm, nie całkiem działa w przypadku nazw zawierających kropki. (np. 192.168.1.1lub somefile.namewithdot)
Pacerier,
5
A jeśli programujesz w ASP.NET, oznacza to najwyższy poziom witryny; zamiast nawigować za pomocą ../../images/some_image.jpg (i myląc poziom zagnieżdżenia!) możesz po prostu powiedzieć ~ / images / some_image.jpg
/images/some_image.jpgpowinien zabrać Cię do katalogu głównego dowolnej strony internetowej. Jakie dodatkowe funkcje zapewnia tylda w ASP.NET?
Sonny,
7
~ przeniesie Cię do katalogu głównego aplikacji internetowej, który nie jest tym samym co katalog główny witryny, jeśli korzystasz z katalogu wirtualnego. Na przykład, jeśli twoja witryna jest zainstalowana na myserver w wirtualnym katalogu myapp, ~ / images / myimage.jpg rozwiąże się do myserver / myapp / images / myimage.jpg . Zobacz msdn.microsoft.com/en-us/library/ms178116.aspx .
MCS
1
Oto kilka wskazówek, które pomogą Ci to lepiej zrozumieć:
$ readlink -f ~
$ echo $HOME
Uwaga: $jest konwencją określającą wiersz polecenia użytkownika, nie jest częścią poleceń.
Jeśli krótka nazwa pliku / katalogu zawiera „~” (np. „C: \ ololoo ~ 1”), odpowiednia długa nazwa tego pliku / katalogu może przekroczyć maksymalną długość (MAX_PATH = 260). Deweloperzy powinni obejść ten problem z prefiksem „\\? \” (Nawet w nowszych systemach Windows 10, ponieważ użytkownik może wyłączyć obsługę LongPathsEnableddługich ścieżek „ > 260” za pomocą parametru rejestru lub zasad grupy „Włącz długie ścieżki NTFS”). Przykład tego obejścia za pomocą C # można znaleźć w źródłach biblioteki ZetaLongPaths .
Odpowiedzi:
Zwykle oznacza to, że katalog osobisty użytkownika, np.
~mike/
Byłbymike
katalogiem~/
osobistym użytkownika , byłby twoim własnym katalogiem domowym. Nie jest jednak dla mnie jasne, czy~/
i~mike/
należy je uważać za absolutne czy względne; wydaje się, że zależy to od podanej definicji (jeśli ktoś może wymyślić autorytatywne odniesienie, prosimy o komentarz).Zauważ, że mówię tutaj o systemach opartych na Uniksie.
Zobacz http://en.wikipedia.org/wiki/Home_directory#Unix
źródło
/etc/login
pliku. Rozbudowa jest tradycyjnie wykonywana przez powłokę, ale zrobi to również każdy język, który ma pretensje do „skryptowania”.~username/
.~
jako synonim domu directoy użytkownika.W rzeczywistości obie odpowiedzi Adriana Mouata i studiohack są prawdziwe.
W systemach operacyjnych z ograniczoną konwencją nazewnictwa (starsza wersja Windows / DOS itp.) Oznacza to długą nazwę.
W niektórych systemach operacyjnych (mianowicie Unix) oznacza to katalog domowy (i może być postrzegany jako ścieżka absolutna, ale nie kanoniczna).
e.g."/a/vol01/usr/mike/" might be shortened to "~/mike/"
* gdzie „usr” to katalog domowy.
źródło
Źródło: Nazewnictwo plików, ścieżek i przestrzeni nazw - krótkie i długie nazwy - MSDN
(W połowie strony ...)
źródło
192.168.1.1
lubsomefile.namewithdot
)A jeśli programujesz w ASP.NET, oznacza to najwyższy poziom witryny; zamiast nawigować za pomocą ../../images/some_image.jpg (i myląc poziom zagnieżdżenia!) możesz po prostu powiedzieć ~ / images / some_image.jpg
źródło
/images/some_image.jpg
powinien zabrać Cię do katalogu głównego dowolnej strony internetowej. Jakie dodatkowe funkcje zapewnia tylda w ASP.NET?Oto kilka wskazówek, które pomogą Ci to lepiej zrozumieć:
Uwaga:
$
jest konwencją określającą wiersz polecenia użytkownika, nie jest częścią poleceń.źródło
Więcej informacji o systemie Windows:
Jeśli nazwa ukrytego pliku zaczyna się od „~”, Eksplorator Windows przetwarza go jako ukryty plik systemowy. Więcej informacji w Dlaczego ukryte pliki z wiodącą tyldą są traktowane jako super-ukryte?
Jeśli krótka nazwa pliku / katalogu zawiera „~” (np. „C: \ ololoo ~ 1”), odpowiednia długa nazwa tego pliku / katalogu może przekroczyć maksymalną długość (MAX_PATH = 260). Deweloperzy powinni obejść ten problem z prefiksem „\\? \” (Nawet w nowszych systemach Windows 10, ponieważ użytkownik może wyłączyć obsługę
LongPathsEnabled
długich ścieżek „ > 260” za pomocą parametru rejestru lub zasad grupy „Włącz długie ścieżki NTFS”). Przykład tego obejścia za pomocą C # można znaleźć w źródłach biblioteki ZetaLongPaths .źródło