Não é A
o mesmo que A/
?
Por que eles são tratados de forma diferente por ln
?
Responder1
EDIT: Eu interpretei mal a pergunta - pensei que você estava perguntando sobre ls
, mas você estava perguntando sobre ln
- obrigado Martijn pelo comentário.
De qualquer forma, não vejo nenhuma diferença da minha parte:
$ mkdir 1
$ touch 2
$ ls -l
total 4
drwxr-xr-x 2 user user 4096 2010-12-20 21:48 1
-rw-r--r-- 1 user user 0 2010-12-20 21:48 2
$ ln -s 1 3
$ ln -s 1/ 3s
$ ln -s 2 4
$ ln -s 2/ 4s
$ ls -l
total 4
drwxr-xr-x 2 user user 4096 2010-12-20 21:48 1
-rw-r--r-- 1 user user 0 2010-12-20 21:48 2
lrwxrwxrwx 1 user user 1 2010-12-20 21:48 3 -> 1
lrwxrwxrwx 1 user user 2 2010-12-20 21:48 3s -> 1/
lrwxrwxrwx 1 user user 1 2010-12-20 21:48 4 -> 2
lrwxrwxrwx 1 user user 2 2010-12-20 21:48 4s -> 2/
Quanto ls
à minha edição anterior ...
Pode haver diferenças, por exemplo, em links simbólicos:
$ ls -l
total 0
$ mkdir 1
$ echo 1>1/a
$ find
.
./1
./1/a
$ ln -s 1 2
$ ls -l
total 4
drwxr-xr-x 2 user user 4096 2010-12-19 13:17 1
lrwxrwxrwx 1 user user 1 2010-12-19 13:17 2 -> 1
$ ls -l 1
total 4
-rw-r--r-- 1 user user 1 2010-12-19 13:17 a
$ ls -l 2
lrwxrwxrwx 1 user user 1 2010-12-19 13:17 2 -> 1
$ ls -l 2/
total 4
-rw-r--r-- 1 user user 1 2010-12-19 13:17 a
É melhor pensar assim:
ls A
listasA
ls A/
na verdade listaA/.
, onde.
está um arquivo especial que indica o diretório atual
Assim, para links simbólicos ls A
liste o link simbólico, enquanto ls A/
== ls A/.
liste o conteúdo da pasta apontada pelo link simbólico.
Para mais detalhes, dê uma olhada aqui:
seção 4.12 Resolução de nome de caminho.