国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

rm刪除文件空間就釋放了嗎?天真!

開發(fā) 前端
在Linux,你是不是曾經(jīng)天真的以為,使用rm刪除一個文件,占用的空間就釋放了?事情可能不是常常如人意。不信嗎?來看下面的例子。

rm刪除文件空間就釋放了嗎?太天真了!

[[325464]]

刪除一個文件

在Linux,你是不是曾經(jīng)天真的以為,使用rm刪除一個文件,占用的空間就釋放了?事情可能不是常常如人意。

不信嗎?來看下面的例子。

產(chǎn)生一個指定大小的隨機內(nèi)容文件

我們先看一下當(dāng)前各個掛載目錄的空間大小:

  1. $ df -h 
  2. /dev/sda11      454M  280M  147M  66% /boot 

我這里挑選了其中一個結(jié)果展示(你可以選擇任一掛載目錄),接下來準備在/boot下生成一個文件。

首先我們產(chǎn)生一個50M大小的文件:

  1. $ dd if=/dev/urandom of=/boot/test.txt bs=50M count=1 

其中dd命令可以參考《dd命令實用詳解》,而關(guān)于/dev/urandom,在《Linux特殊設(shè)備文件你知道嗎》中已經(jīng)有介紹。

至此,我們產(chǎn)生了一個50M大小的文件,再看boot下:

  1. $ df -h 
  2. /dev/sda11      454M  312M  115M  74% /boot 

這里你不用關(guān)心到底多了多少,你只需要關(guān)注,/boot下的文件增多了。

測試程序

  1. #include<stdio.h> 
  2. #include<unistd.h> 
  3. int main(void) 
  4.     FILE *fp = NULL
  5.     fp = fopen("/boot/test.txt", "rw+"); 
  6.     if(NULL == fp) 
  7.     { 
  8.        perror("open file failed"); 
  9.        return -1; 
  10.     } 
  11.     while(1) 
  12.     { 
  13.        //do nothing 
  14.        sleep(1); 
  15.     } 
  16.     fclose(fp); 
  17.     return 0; 

至于程序本身,也沒干啥實際的事情,就是打開一個文件,然后一直循環(huán)。

編譯并運行:

  1. $ gcc -o openFile openFile.c 
  2. $ ./openFile 

打開另外一個窗口,刪掉test.txt:

  1. $ rm /boot/test.txt 

再看一下boot空間:

  1. $ df -h 
  2. dev/sda11      454M  312M  115M  74% /boot 

咦?空間大小怎么一點都沒變!!明明使用rm把它刪除了啊?

我們把openFile程序停掉,再看看:

  1. $$ df -h 
  2. /dev/sda11      454M  280M  147M  66% /boot 

乖乖,空間馬上就釋放掉了,也就是按照預(yù)期,我們的文件被刪除了。

一個文件什么情況下才會被刪除?

實際上,只有當(dāng)一個文件的引用計數(shù)為0(包括硬鏈接數(shù))的時候,才可能調(diào)用unlink刪除,只要它不是0,那么就不會被刪除。所謂的刪除,也不過是文件名到 inode 的鏈接刪除,只要不被重新寫入新的數(shù)據(jù),磁盤上的block數(shù)據(jù)塊不會被刪除,因此,你會看到,即便刪庫跑路了,某些數(shù)據(jù)還是可以恢復(fù)的。

換句話說,當(dāng)一個程序打開一個文件的時候(獲取到文件描述符),它的引用計數(shù)會被+1,rm雖然看似刪除了文件,實際上只是會將引用計數(shù)減1,但由于引用計數(shù)不為0,因此文件不會被刪除。

  1. struct inode { 
  2. struct hlist_node   i_hash; /* hash鏈表的指針 */ 
  3. struct list_head    i_list; /* backing dev IO list */ 
  4. struct list_head    i_sb_list; /* 超級塊的inode鏈表 */ 
  5. struct list_head    i_dentry; /* 引用inode的目錄項對象鏈表頭 */ 
  6. unsigned long    i_ino; /* 索引節(jié)點號 */ 
  7. atomic_t         i_count; /* 引用計數(shù) */ 
  8. unsigned int     i_nlink; /* 硬鏈接數(shù)目 */ 
  9. ...... 

關(guān)于里面的細節(jié),還有很多內(nèi)容(如硬鏈接數(shù)量也會影響文件是否被刪除),這里不一一展開。

如何釋放已經(jīng)被刪除文件占用的空間?

關(guān)于釋放,前面已經(jīng)說了,重啟打開該文件的進程即可。但是有沒有方法找到哪些文件被刪除了,但還是被某些進程打開了呢?

自然是有方法的:

  1. $ lsof |grep deleted 

其中被標記為deleted的文件,就是這樣的一些文件。

其實在前面的例子中,我們也可以很容易觀察到(openFile程序運行,test.txt文件被刪除):

  1. $ ls -al /proc/`pidof openFile`/fd 
  2. total 0 
  3. lrwx------ 1 root root 64 5月   4 09:27 0 -> /dev/pts/25 
  4. lrwx------ 1 root root 64 5月   4 09:27 1 -> /dev/pts/25 
  5. lrwx------ 1 root root 64 5月   4 09:27 2 -> /dev/pts/25 
  6. lrwx------ 1 root root 64 5月   4 09:27 3 -> /boot/test.txt (deleted) 

看見沒有,test.txt后面還有deleted字樣。

既然我們都說了,這樣的情況下文件是沒有被刪除的,那么還能不能恢復(fù)呢?實際上還是可以讀取的。

總結(jié)

實際上對于這種文件被刪除了,常常出現(xiàn)于程序的日志文件中,可能你有一個定時任務(wù)去清理程序產(chǎn)生的日志文件,但是如果程序本身忘記關(guān)閉句柄,就會導(dǎo)致磁盤空間得不到釋放,最終就是你認為文件都被刪除了,但是磁盤卻依然被占著。所以,養(yǎng)成好習(xí)慣,打開文件后,不用時,記得關(guān)閉文件描述符。

如果發(fā)現(xiàn)明明已經(jīng)刪除了大量文件,但是空間卻并沒有恢復(fù)正常,那么不妨看看是不是還有程序打開了這些文件。

 

責(zé)任編輯:趙寧寧 來源: 編程珠璣
相關(guān)推薦

2020-07-03 15:30:14

rm文件Linux

2010-04-28 19:18:44

Hp unix

2017-11-03 09:59:16

Linux文件空間

2023-03-05 22:11:20

刪除文件磁盤

2024-02-29 17:41:50

2022-11-14 12:41:29

2019-12-31 15:52:20

Linux文件命令

2023-03-03 00:07:24

2024-12-16 15:07:10

2022-03-15 17:28:46

微軟Azure數(shù)據(jù)

2018-03-19 08:34:18

Windows 10Windows原系統(tǒng)殘留

2025-06-25 08:25:00

運維lsof幽靈文件

2022-02-08 22:50:12

手機存儲內(nèi)存

2010-08-26 10:47:05

2012-04-19 09:29:48

2019-11-20 10:24:43

Linux重復(fù)文件磁盤

2019-11-20 10:23:51

磁盤WindowsLinux

2025-08-12 09:17:06

2019-04-17 10:14:31

2020-09-24 14:39:20

華為云AI知識計算
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲综合丁香| 一区二区电影免费观看| 在线国产欧美| 热99精品里视频精品| av在线之家电影网站| 中文字幕一区二区视频| 男女日批视频在线观看| 日韩国产成人精品| 精品一区二区三区自拍图片区| 国产99久久| 性欧美亚洲xxxx乳在线观看| 色综合一区二区日本韩国亚洲| 日韩av最新在线| 免费电影网站在线视频观看福利| 欧美视频一区二区| 国产在线观看网站| 精品国产91久久久久久| 美女视频黄a视频全免费观看| www激情久久| 国产精品av免费观看| 久久久久综合| 国产亚洲自拍偷拍| 欧美三级第一页| www.av一区视频| 亚洲蜜桃视频| 成人福利视频在线观看| 欧美理论在线播放| 国产精品嫩草视频| 欧美wwwww| 亚洲一区二区免费在线| 亚洲高清资源在线观看| 亚洲最大福利视频网| 91精品秘密在线观看| 国产精品一区二区三区免费观看| 伊人久久婷婷| 天天人人精品| 成人免费视频一区| 国产又猛又黄的视频| 一区二区三区.www| 尤物网址在线观看| 日韩电影大全免费观看2023年上| 日本免费一区二区三区四区| 美女撒尿一区二区三区| 天美av一区二区三区久久| 国产精品久久久久久久久 | 亚洲h在线观看| av在线免费观看网| 亚洲成色777777女色窝| av成人免费| 欧美亚洲免费电影| **女人18毛片一区二区| 亚洲a∨一区二区三区| 国产91色综合久久免费分享| 美女黄色片视频| 午夜欧美大尺度福利影院在线看| 欧美日韩在线看片| 国产午夜精品全部视频在线播放 | av一级久久| 国产精品吴梦梦| 亚洲永久字幕| 免费高清在线观看免费| 婷婷综合五月天| 成人av影院在线观看| 操日韩av在线电影| 一区二区三区在线观看免费| 国内精品国产三级国产99| 亚洲精品免费在线| 激情av在线播放| 26uuu久久噜噜噜噜| 亚洲永久网站| 超碰色偷偷男人的天堂| 欧美一级黄色录像| 群体交乱之放荡娇妻一区二区| 精品无人乱码一区二区三区的优势| 国产导航在线| 99视频精品免费视频| 久久久一本精品99久久精品| 亚洲一区电影| 中文字幕日本不卡| 精品日韩电影| 1204国产成人精品视频| 欧美午夜视频网站| 最近2019年日本中文免费字幕 | 日本欧美在线视频| 天堂影院一区二区| 交视频在线观看国产| 亚洲精品自拍偷拍| 综合久久婷婷| 成人av小说网| 亚洲香蕉av在线一区二区三区| 欧美午夜一区二区福利视频| 天天碰免费视频| 色女人在线视频| 日韩视频免费观看高清完整版在线观看 | 丁香五月网久久综合| 最新日韩精品| 91黄色小视频| 男女视频一区二区三区| 国产精品视频免费| 99热在线免费播放| 国产九九视频一区二区三区| 成人在线观看91| 视频成人永久免费视频| 亚洲黄色免费三级| 漫画在线观看av| 久久久久久久久一区二区| 欧美日韩性视频| 羞羞视频在线免费看| 精品美女被调教视频大全网站| 一级毛片在线观| 亚瑟在线精品视频| 视频三区在线观看| 亚洲午夜激情av| 少妇高潮一区二区三区99| 欧美尤物美女在线| 欧美成人免费小视频| 日韩精品亚洲一区二区三区免费| 有色激情视频免费在线| 久久久久国色av免费观看性色 | 福利h视频在线| 韩国三级电影久久久久久| 91视频国产观看| 石原莉奈一区二区三区在线观看| 虎白女粉嫩尤物福利视频| 国产精品私人影院| yellow91字幕网在线| 亚洲性无码av在线| 深夜福利一区| 奇米4444一区二区三区 | 99riav久久精品riav| 在线观看免费av网| 97碰在线视频| 制服丝袜亚洲精品中文字幕| 欧美精品三区| 久热av在线| 国产精品免费一区二区| 欧美午夜激情视频| 亚洲香蕉网站| 在线免费观看的av| 日本一区二区三区在线视频 | 亚洲成成品网站| 日韩在线一区二区三区| 色老头在线观看| 蜜桃视频成人在线观看| 中文字幕国产精品| 国产喂奶挤奶一区二区三区| 精品欧美午夜寂寞影院| 婷婷亚洲天堂| 国产精品久久久久久久久久尿| 亚洲一区二区在线观看视频| 欧美国产一级| 免费大片黄在线| 欧美一二三不卡| 欧美福利视频在线| 欧美日韩国产中字| 亚洲一级在线| 91精品美女| 成视频在线观看免费观看| 国产一区二区在线免费| 欧美主播一区二区三区美女| 日韩av一二三| 麻豆精品一区| 六十路在线观看| 中文字幕一区综合| 色综合视频一区中文字幕| 亚洲午夜激情av| 蜜桃视频第一区免费观看| 综合伊人久久| 成人在线观看网站| 久久亚洲精品无码va白人极品| 欧美激情精品久久久| 欧美在线你懂的| av在线一区二区三区| 99久久精品费精品国产| 超碰高清在线| 天天色综合6| 激情伦成人综合小说| 一区二区三区四区精品| 一区二区三区四区在线| 亚洲欧美久久久| 成人黄色av网址| 超碰免费在线播放| 污视频网站观看| 久久伦理网站| 欧美激情视频一区二区| 欧美喷水一区二区| 国产香蕉久久精品综合网| 日韩视频免费| 成人知道污网站| 国产理论电影在线| 黄动漫网站在线观看| 久久久国内精品| 99热在线播放| 久久99精品久久久久久琪琪| 欧美高清视频一二三区| 久久麻豆一区二区| 久久资源在线| av资源久久| 麻豆一区在线| 久草免费在线视频|