當你在linux中複製文件時(使用contex menu copy命令)linux是否創建文件的硬鏈接? 此外,如果刪除原始文件而不是硬鏈接,該文件仍會保留在內存中,但它的指針被刪除會發生什麼? 我很難理解一些內存的東西。 要釋放磁盤空間,您需要刪除這兩個文件,對不對? 硬鏈接指向原始文件的內存位置嗎?我曾經看到term inode,我現在很清楚確定inode的真實含義。硬鏈接linux,內存
回答
inode是除內容以外的所有文件數據。 「這個目錄包含文件foo,它是這個驅動器上的文件編號3,bar,它是文件編號4,quux,17,即123,最後是ohmygod,77321341 」。編號爲3的節點包含「該文件創建於1970年1月1日,最後修改於1990年1月1日,最後一次於1990年1月2日修改。它的大小爲722字節,這些字節在驅動器」還有其他一些事情。
stat()系統調用顯示需要多少個塊,以及幾乎所有其他與inode相關的塊。
複製不會創建硬鏈接,那將是違規的行爲。硬鏈接只是對同一個文件的額外的頭等名稱;通過一個名稱修改文件(而不是通過保存臨時名稱,然後移動它,如同一些編輯器那樣),並且當以其他名稱訪問時,您將看到文件中的更改。不是我期望的副本。
請注意,文件的名字沒有特別之處。所有的硬鏈接都只是指向同一個文件。
一旦指向文件的最後一個目錄條目被刪除,仍然可能有文件句柄打開指向它(從打開該文件的程序)。只要其中一個存在,該文件仍然存在並可以使用。它不能由以前沒有做過的進程打開,因爲它沒有名字了。
當沒有更多的目錄條目指向一個文件,並且沒有任何程序有更多的文件打開句柄時,它再也無法達到。因此,操作系統釋放磁盤上的空間。
你告訴我我已經知道的一切:/ 如何查看特定文件消耗多少空間? 當我複製文件並使用ll -h命令時,它總是說4K – user2982390
您問「做A做B?」,我的答案以「不,A不做B」開頭。如果您已經知道,爲什麼要問?在大多數文件系統上,小文件總是會佔用一個完整的塊,而在您的計算機上似乎是4k。 –
此外,您正在討論「刪除兩個文件」,其中只有一個文件,其中有兩個目錄條目指向它。似乎你應該重新閱讀我寫的內容。 –
- 1. Linux中的硬鏈接
- 2. Linux硬鏈接(ln)和GIT
- 3. 軟鏈接和硬鏈接
- 4. NFS +硬鏈接?
- 5. Linux內核硬件斷點
- 6. 鏈接硬件庫
- 7. 遞歸硬鏈接
- 8. svn與硬鏈接
- 9. 隱形硬鏈接
- 10. 硬鏈接到空管道的數量linux vs unix
- 11. 如何從C程序在Linux中創建硬鏈接
- 12. 爲什麼硬鏈接不允許在UNIX/Linux中的目錄
- 13. 爲什麼Linux中的目錄硬鏈接數超過1?
- 14. 靜態鏈接的linux內核
- 15. 清除Linux內核鏈接列表
- 16. linux中共享內存中的多個鏈接列表
- 17. USN日記硬鏈接
- 18. Rsnapshot沒有硬鏈接?
- 19. MEM_SHARED,mmap和硬鏈接
- 20. Linux:加載CPU,內存和硬盤的示例程序
- 21. 谷歌硬盤直接鏈接
- 22. 針對硬盤的Linux SSD緩存
- 23. 解釋緩存內存和內存管理的鏈接
- 24. 硬鏈接windows 7中整個目錄的內容
- 25. 從Google表格的內容鏈接到Google雲端硬盤
- 26. 塊鏈接內部鏈接
- 27. 鏈接內的鏈接?
- 28. 鏈接內的鏈接?
- 29. 突然在NAND閃存上創建硬鏈接
- 30. 保存硬鏈接的Tar歸檔文件
如何調用stat()? – user2982390
這取決於編程語言。如果你只是想玩,試試perl,perl對於小黑客來說是個不錯的選擇。人perlfunc,搜索統計。 – arnt
如何從終端調用它? :d – user2982390