Birçok Unix yardımcı programı, izleri eğik çizgi olup olmamasına bağlı olarak farklı şekilde ele alır.
Bu davranış POSIX Sembolik Bağlantı belgelerinde açıklanır ve GNU coreutils belgelerinde de belirtilir .
Temel olarak, sondaki eğik çizgi, sembolik çizgiyi takip etmek (veya "dereference") anlamına gelir.
Örneğin, aşağıdaki kodda dirlink
, sembolik bağlantı dirlink/
anlamına gelir , ancak sembolik bağın işaret ettiği dizin anlamına gelir. rm
siz söylemediğiniz sürece bir dizini kaldırmaz rm -r
, ancak rm
seçenekler olmadan bir sembolik bağlantı mutlu bir şekilde kaldırılır.
$ 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
Ayrıca, dizinin gerçek bir dizin mi, yoksa yalnızca bir dizine bir sembol bağlantısı mı olduğunu sormak zorunda kalmadan bir dizinin izinlerini görüntülemek için de yararlıdır.
$ 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/
ve hala düzenli dizinler için çalışıyor:
$ 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/
Başka bir örnek find
komuttur. Aramasını path
isterseniz bir sembolik bağlantı varsa, varsayılan olarak sembolik bağlantıyı izlemez, yani yalnızca sembolik bağlantıyı işler. Sondaki eğik çizgi eklenmesi, sembolik bağın, bağlantının işaret ettiği dizin olarak değerlendirilmesini sağlar.
$ find dir
dir
dir/file
$ find dirlink
dirlink
$ find dirlink/
dirlink/
dirlink/file
(bulmanın bazı sürümlerinde bir -follow
veya -L
seçenek bulunur, ancak bu yalnızca ilkini değil, tüm simgeleri takip eder)
rsync
Eğik çizgi eklemeniz gerekip gerekmediği durumda, kopyaladığınız dizinin bir alt dizin olmasını isteyip istemediğinize bağlıdır.
$ 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
Diğer bir deyişle:
rsync dir dir.bak
kopyalar dir
içine dir.bak
, yapım dir
içdir.bak
rsync dir/ dir.bak
tüm içeriği kopyalar dir
yapmadan, dir
içinidir.bak