Znak ~ na początku ścieżki w systemach uniksowych to taki trochę skrót-klucz, który odwołuje się bezpośrednio do katalogu domowego użytkownika. W praktyce, jak wpiszesz np. cd ~ w terminalu, to od razu przenosi cię do twojego katalogu domowego – czyli miejsca, gdzie masz swoje dokumenty, konfiguracje, pulpit, pliki robocze i całą resztę rzeczy, za które odpowiadasz bezpośrednio jako użytkownik w systemie. To się sprawdza genialnie, bo nie musisz pamiętać czy katalog domowy to /home/jan, /Users/ania albo coś jeszcze innego – system sam wie, o którego użytkownika chodzi. Zresztą, jeśli chcesz wejść do katalogu domowego innego użytkownika, wpisujesz np. ~marek i terminal zabierze cię do /home/marek. W skryptach Bash i innych powłokach uniksowych to rozszerzanie znaku ~ na konkretną ścieżkę jest standardem od lat i praktycznie każdy administrator korzysta z tego automatycznie. To jeden z tych drobiazgów, które mega przyspieszają pracę na konsoli. Moim zdaniem, jak ktoś często korzysta z powłoki, to nie wyobraża sobie codziennej pracy bez tego symbolu. Ciekawe jest też to, że pliki tymczasowe i systemowe mają zupełnie inne notacje – tutaj ~ jest ściśle powiązany z profilem użytkownika i nie ma nic wspólnego z katalogiem głównym systemu, czyli /. Warto to zapamiętać.
Wielu początkujących użytkowników systemów uniksowych myli symbol ~ z różnymi specjalnymi katalogami lub plikami, co jest dość częstą sytuacją. Wynika to zapewne z tego, że w środowisku terminalowym występuje sporo różnych znaków o szczególnym znaczeniu, takich jak / dla katalogu głównego czy . i .. jako obecny i nadrzędny katalog. Jednak ~ nie wskazuje ani na katalog główny systemu, ani na plik systemowy czy tymczasowy. Katalog główny, czyli root, zawsze występuje jako pojedynczy ukośnik / i to od niego zaczynają się pełne ścieżki absolutne w systemie plików. Pliki tymczasowe często są oznaczane przez katalog /tmp i bardzo rzadko dotyczą symbolu ~, chyba że ktoś ustawi sobie taki prefiks samodzielnie, co jest raczej niepraktyczne. Pliki systemowe z kolei znajdują się najczęściej w katalogach typu /etc, /usr czy /bin i nie są powiązane ani z ~, ani z katalogiem domowym użytkownika. Typowy błąd, który często obserwuję, polega na utożsamianiu znaku ~ z czymś uniwersalnym jak 'miejsce startowe' dla systemu lub tymczasowych danych – a tak naprawdę jest to bardzo konkretne ułatwienie dla użytkownika, który chce szybko odwołać się do własnego katalogu domowego bez wpisywania pełnej ścieżki. Standardy POSIX oraz praktyka administratorów jasno wskazują, że ~ to po prostu shortcut dla home directory, co bardzo przydaje się podczas codziennych operacji, szczególnie w pracy z terminalem i automatyzacją. Moim zdaniem warto dokładnie rozróżniać te pojęcia i nie mieszać symboli, bo to ułatwia zrozumienie struktury systemu plików oraz pozwala unikać nieporozumień podczas korzystania z konsoli.