É porque você está no diretório em que você está se conectando. Então você ainda está referenciando o conteúdo do diretório original através do diretório original.
Você pode ver exatamente o mesmo efeito quando estiver em cd
em um diretório que será excluído.
$ pwd
/home/saml/dirtodel
$ rmdir ../dirtodel
$ pwd
/home/saml/dirtodel
Como isso pode ser? Ainda estou dentro de um diretório que acabou de ser excluído. O que está acontecendo?
No shell que ainda é cd
to /home/saml/dirtodel
, execute este comando para descobrir o PID (id do processo) para sua sessão do bash:
$ echo $$
32619
Agora, se você entrar no diretório PID / proc, podemos ver o que está acontecendo:
$ ls -l /proc/32619/ | head -10
total 0
dr-xr-xr-x 2 saml saml 0 May 18 07:40 attr
-r-------- 1 saml saml 0 May 18 07:40 auxv
-r--r--r-- 1 saml saml 0 May 18 07:40 cgroup
--w------- 1 saml saml 0 May 18 07:40 clear_refs
-r--r--r-- 1 saml saml 0 May 18 02:06 cmdline
-rw-r--r-- 1 saml saml 0 May 18 07:40 comm
-rw-r--r-- 1 saml saml 0 May 18 07:40 coredump_filter
-r--r--r-- 1 saml saml 0 May 18 07:40 cpuset
lrwxrwxrwx 1 saml saml 0 May 18 07:31 cwd -> /home/saml/dirtodel (deleted)
Listando os primeiros arquivos, vemos um chamado cwd
, que significa diretório de trabalho atual. Observe que está apontando para o nosso nome antigo e que ele foi "excluído".
Isso nos dá uma ideia do que está acontecendo, mas onde estamos?
Curiosamente, se cd /proc/32619/cwd
pudermos mudar de diretório para esse local mágico. Se executarmos o comando df .
, poderemos ver que ainda estamos na partição /home
:
$ pwd
/proc/32619/cwd
[saml@grinchy cwd]$ df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_grinchy-lv_home
245G 125G 108G 54% /home
Então, o que está acontecendo?
Mesmo que nosso diretório tenha sido excluído, o inode que o compõe não foi. Você pode ver isso com o comando stat
. No shell que ainda está dentro do diretório, excluímos:
$ stat .
File: '.'
Size: 0 Blocks: 8 IO Block: 4096 directory
Device: fd02h/64770d Inode: 10486487 Links: 0
Access: (0775/drwxrwxr-x) Uid: ( 500/ saml) Gid: ( 501/ saml)
Access: 2013-05-18 07:48:52.674081972 -0400
Modify: 2013-05-18 07:48:44.378900038 -0400
Change: 2013-05-18 07:50:54.189747426 -0400
Podemos ver que ainda existe um inode, 10486487, em uso por nós, mas observe que ele tem 0 links. Isso é o que acontece quando algo é deletado. Todos os links para ele são removidos e, portanto, o sistema operacional pode excluir esse inode paritural.