Ubuntu

使用命令行界面從內部刪除目錄

  • October 23, 2015

想像 /home/user/ 目錄中的下一個簡單文件結構:

/home/user 
      |--dir0 
          |--dir1
              |--file1

我的目前目錄是“dir1”,我使用以下命令從內部刪除目錄:

rm -r ../dir1

之後(並且在終端上沒有出現任何錯誤),工作目錄仍然是相同的,當使用命令pwd時,輸出是:

user@ubuntu:~/dir0/dir1$ pwd
/home/user/dir0/dir1
user@ubuntu:~/dir0/dir1$

如果已經從文件系統中刪除了工作目錄,為什麼作業系統會返回工作目錄是“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

為什麼電影被刪了還能繼續看?

因為文件描述符可能已經消失了,但 inode 仍然存在!只有當 inode 被刪除時,文件才會永遠消失!

因此,在您的情況下:當您關閉該樹cd/的所有文件時,inode 將被回收並且該目錄將永遠消失¹…

請記住:這不是 Windows,這是專業的作業系統!

;-)

¹除非它在被回收之前被取消刪除。

引用自:https://unix.stackexchange.com/questions/219496