删除Linux上的当前目录

时间:2012-09-10 21:16:02

标签: linux unix directory

首先,一个例子:

~ $ ls
~ $ mkdir foo; cd foo
foo $ pwd
/Users/person/foo
foo $ ls
foo $ touch file1 file2 file3
foo $ ls
file1    file2    file3
foo $ rm *
foo $ ls
foo $ rm -r ../foo
foo $ pwd
/Users/person/foo/
foo $ touch file4
touch: file4: No such file or directory
foo $

删除当前所在的目录后会发生什么?为什么我仍然在一个不存在的目录中(我认为它不存在仅仅是因为我无法写入它)?我想它与某种指针有关。

1 个答案:

答案 0 :(得分:3)

你的shell进程将该目录作为其当前目录,它将其inode保存在磁盘上,其方式与打开文件在取消链接后保持其inode分配的方式大致相同,直到所有持有该文件的打开句柄的进程关闭它们。