1

まず、例:

~ $ 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 $

現在のディレクトリを削除するとどうなりますか? 存在しないディレクトリにまだいるのはなぜですか (書き込めないという理由だけで存在しないと思います)。ある種のポインターと関係があると思います。

4

1 に答える 1

4

シェル プロセスはそのディレクトリを現在のディレクトリとして保持します。これは、開いているファイルがリンク解除後に i ノードを割り当てたままにするのとほぼ同じ方法で、そのファイルへの開いているハンドルを保持しているすべてのプロセスがそれらを閉じるまで、その i ノードをディスクに割り当てたままにします。

于 2012-09-10T21:25:59.463 に答える