Molte utility Unix trattano i collegamenti simbolici in modo diverso a seconda che esista una barra finale.
Questo comportamento è descritto nella documentazione POSIX Symbolic Link ed è anche menzionato nella documentazione GNU coreutils .
Fondamentalmente, la barra finale significa seguire (o "dereference") il collegamento simbolico.
Ad esempio, nel codice seguente, dirlinkindica il collegamento simbolico, ma dirlink/indica la directory a cui punta il collegamento simbolico. rmnon rimuoverà una directory se non lo dici tu rm -r, ma rmsenza opzioni rimuoverà felicemente un link simbolico.
$ 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
È anche utile per visualizzare le autorizzazioni di una directory, senza doversi preoccupare se la directory è una directory reale o solo un link simbolico a una directory.
$ 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/
e funziona ancora per le directory regolari:
$ 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/
Un altro esempio è il findcomando. Se gli pathchiedi di cercare è un collegamento simbolico, per impostazione predefinita non seguirà il collegamento simbolico, il che significa che elabora solo il collegamento simbolico. L'aggiunta di una barra finale fa sì che il collegamento simbolico venga considerato come la directory a cui punta il collegamento.
$ find dir
dir
dir/file
$ find dirlink
dirlink
$ find dirlink/
dirlink/
dirlink/file
(alcune versioni di find hanno un'opzione -followo -L, ma ciò fa sì che segua tutti i collegamenti simbolici, non solo il primo)
Nel caso in cui rsync, se si deve aggiungere una barra, dipende se si desidera che la directory che si sta copiando sia una sottodirectory o meno.
$ 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
In altre parole:
rsync dir dir.bakcopie dirin dir.bak, facendo dirdentrodir.bak
rsync dir/ dir.bakcopia tutto il contenuto di dir, senza renderlo dirinternodir.bak