Files
將大文件 cp 到 /dev/null 以將大小減小到零
我剛剛遇到一個建議,如果你想刪除一個大文件並且一個程序打開了文件句柄,你應該將它複製到 /dev/null 並且它的大小將減少到零。
這是如何運作的?或者這甚至有效嗎?
快速搜尋後,我發現了從“是的,這完全有效”到“你的整個機器要爆炸”的相互矛盾的答案。有人可以啟發我嗎?
我在這裡找到了問題: https ://syedali.net/engineer-interview-questions/
您誤讀了該建議,其想法是不要將大文件複製到
/dev/null
,這不會以任何方式影響它,如果有可用空間則將其放入記憶體中。cp bigfile /dev/null # useless
建議不要刪除文件然後復製
/dev/null
到它,因為它會保持原始 inode 不變,並且只要程序打開該文件就不會釋放任何磁碟空間。建議是將文件內容替換為
/dev/null
1,考慮到/dev/null
設計大小為零的事實,它實際上將文件截斷為零字節:cp /dev/null bigfile # works cat /dev/null > bigfile # works
可能需要注意的是,如果您使用 shell 執行這些命令,則無需使用
/dev/null
,簡單的空重定向將具有相同的效果並且效率更高,cat /dev/null
無論如何都是無操作的。: > bigfile # better > bigfile # even better if the shell used supports it