linux - 在 Linux 上删除当前目录

标签 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 $

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

最佳答案

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

关于linux - 在 Linux 上删除当前目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12359598/

相关文章:

linux - Kdbg 中显示的值是错误的 -- NASM

linux - 如何授予用户对/var/www/app 中 www-dat 拥有的文件夹的读/写权限?

unix - 无法以root用户身份在/var/log下创建目录

perl - 在管道 Perl 执行中捕获 tee 的参数

Bash 脚本删除文本文件中的所有行,直到出现字符串

list - Powershell脚本列出目录中的Zip文件及其大小

linux - 如何让 linux 命令在管道传输之前等待输入结束?

python - 在 Python 中通过 Xlib 找出鼠标按钮状态

directory - 如何在Lua中创建目录?

svn - 如果我想保留本地更改,解决与 TortoiseSVN 树冲突的最佳方法是什么?