jch*_*ger 4 ubuntu terminal rm files
对 /home/user/ 目录中的下一个简单文件结构进行映像:
/home/user
|--dir0
|--dir1
|--file1
Run Code Online (Sandbox Code Playgroud)
我当前的目录是“dir1”,我使用以下命令从内部删除目录:
rm -r ../dir1
Run Code Online (Sandbox Code Playgroud)
之后(并且在终端上没有出现任何错误),工作目录仍然相同,并且在使用命令pwd 时,输出为:
user@ubuntu:~/dir0/dir1$ pwd
/home/user/dir0/dir1
user@ubuntu:~/dir0/dir1$
Run Code Online (Sandbox Code Playgroud)
如果已经从文件系统中删除了工作目录,为什么操作系统会返回工作目录是“dir1”?
我认为pwd您运行的是内置的 bash shell。它只是打印出它在内存中保存的路径,而无需查找文件系统。
$ type pwd
pwd is a shell builtin
$ /bin/pwd
/bin/pwd: couldn't find directory entry in '..' with matching i-node
Run Code Online (Sandbox Code Playgroud)
为什么电影被删了还能继续看?
因为文件描述符可能已经消失了,但是 inode 还在!只有当 inode 被删除时,文件才会永远消失!
所以你的情况:当你cd要/在那树中的所有文件都将关闭的i节点被回收,将目录消失forever¹...
请记住:这不是 Windows,这是一个专业的操作系统!
¹除非它在被回收之前被取消删除。
| 归档时间: |
|
| 查看次数: |
950 次 |
| 最近记录: |