Wiele narzędzi uniksowych traktuje dowiązania symboliczne w różny sposób w zależności od tego, czy występuje ukośnik końcowy.
To zachowanie jest opisane w dokumentacji POSIX Symbolic Link i jest również wspomniane w dokumentacji GNU coreutils .
Zasadniczo ukośnik końcowy oznacza śledzenie (lub „dereferencję”) dowiązania symbolicznego.
Na przykład w poniższym kodzie dirlinkoznacza dowiązanie symboliczne, ale dirlink/oznacza katalog, do którego prowadzi dowiązanie symboliczne. rmnie usunie katalogu, chyba że powiesz rm -r, ale rmbez opcji z przyjemnością usunie dowiązanie symboliczne.
$ mkdir dir
$ ln -s dir dirlink
$ ls -l
total 4
drwxr-xr-x 2 mikel mikel 4096 2011-02-02 22:26 dir
lrwxrwxrwx 1 mikel mikel 3 2011-02-02 22:26 dirlink -> dir
$ ls -l
total 4
drwxr-xr-x 2 mikel mikel 4096 2011-02-02 22:26 dir
lrwxrwxrwx 1 mikel mikel 3 2011-02-02 22:26 dirlink -> dir
$ rm dirlink/
rm: cannot remove `dirlink/': Is a directory
$ rm dirlink
$ ls -l
total 4
drwxr-xr-x 2 mikel mikel 4096 2011-02-02 22:26 dir
Jest także przydatny do przeglądania uprawnień do katalogu, bez konieczności zawracania sobie głowy tym, czy katalog jest prawdziwym katalogiem, czy tylko dowiązaniem symbolicznym do katalogu.
$ ls -ld dirlink
lrwxrwxrwx 1 mikel mikel 3 2011-02-02 22:46 dirlink -> dir
$ ls -ld dirlink/
drwxr-xr-x 2 mikel mikel 4096 2011-02-02 22:46 dirlink/
i nadal działa dla zwykłych katalogów:
$ ls -ld dir
drwxr-xr-x 2 mikel mikel 4096 2011-02-02 22:46 dir
$ ls -ld dir/
drwxr-xr-x 2 mikel mikel 4096 2011-02-02 22:46 dir/
Innym przykładem jest findpolecenie. Jeśli pathpoprosisz go o wyszukiwanie, jest to dowiązanie symboliczne, domyślnie nie podąży ono za dowiązaniem symbolicznym, co oznacza, że przetwarza tylko dowiązanie symboliczne. Dodanie ukośnika powoduje, że traktuje dowiązanie symboliczne jako katalog, do którego prowadzi dowiązanie.
$ find dir
dir
dir/file
$ find dirlink
dirlink
$ find dirlink/
dirlink/
dirlink/file
(niektóre wersje find mają opcję -followlub -L, ale dzięki temu podążają za wszystkimi dowiązaniami symbolicznymi, nie tylko pierwszymi)
To rsync, czy powinieneś dodać ukośnik, zależy od tego, czy chcesz, aby katalog, który kopiujesz, był podkatalogiem, czy nie.
$ mkdir dir
$ touch dir/file
$ rsync -r dir dir.bak
$ find .
.
./dir
./dir/file
./dir.bak
./dir.bak/dir
./dir.bak/dir/file
$ rm -r dir.bak
$ rsync -r dir/ dir.bak
$ find .
.
./dir
./dir/file
./dir.bak
./dir.bak/file
Innymi słowy:
rsync dir dir.bakkopiuje dirdo dir.bak, robiąc w dirśrodkudir.bak
rsync dir/ dir.bakkopiuje całą zawartość dirbez robienia w dirśrodkudir.bak