日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

linux空洞目录,学习笔记:linux之文件空洞

發(fā)布時(shí)間:2025/4/16 linux 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux空洞目录,学习笔记:linux之文件空洞 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文件空洞linux

咱們知道lseek()系統(tǒng)調(diào)用能夠改變文件的偏移量,但若是程序調(diào)用使得文件偏移量跨越了文件結(jié)尾,而后再執(zhí)行I/O操做,將會(huì)發(fā)生什么狀況? read()調(diào)用將會(huì)返回0,表示文件結(jié)尾。使人驚訝的是,write()函數(shù)能夠在文件結(jié)尾后的任意位置寫入數(shù)據(jù)。在這種狀況下,對(duì)該文件的下一次寫將延長(zhǎng)該文件,并在文件中構(gòu)成一個(gè)空洞,這一點(diǎn)是容許的。從原來的文件結(jié)尾到新寫入數(shù)據(jù)間的這段空間被成為文件空洞。調(diào)用write后文件結(jié)尾的位置已經(jīng)發(fā)生變化。網(wǎng)絡(luò)

在Linux系統(tǒng)之中,文件結(jié)束符EOF根本不是一個(gè)字符,而是當(dāng)系統(tǒng)讀取到文件結(jié)尾,所返回的一個(gè)信號(hào)值(也就是-1),至于系統(tǒng)怎么知道文件的結(jié)尾,資料上說是經(jīng)過比較文件的長(zhǎng)度。dom

文件空洞占用任何磁盤空間,直到后續(xù)某個(gè)時(shí)點(diǎn),在文件空洞中寫入了數(shù)據(jù),文件系統(tǒng)才會(huì)為之分配磁盤塊。空洞的存在乎味著一個(gè)文件名義上的大小可能要比其占用的磁盤存儲(chǔ)總量要大(有時(shí)大出許多)。向文件空洞中寫入字節(jié),內(nèi)核須要為其分配存儲(chǔ)單元,即便文件大小不變,系統(tǒng)的可用磁盤空間也將減小。這種狀況并不常見,但也須要了解。函數(shù)

下面看一個(gè)例子:(轉(zhuǎn)自http://blog.csdn.net/wangxiaoqin00007/article/details/6617801)測(cè)試

ls -l file ? ? ? ?查看文件邏輯大小spa

du -c file???? 查看文件實(shí)際占用的存儲(chǔ)塊多少.net

od -c file ? ? 查看文件存儲(chǔ)的內(nèi)容blog

空洞文件就是有空洞的文件,在平常的常識(shí)中,咱們使用的文件存放在硬盤分區(qū)上的時(shí)候,有多大的內(nèi)容就會(huì)占用多大的空間,好比這個(gè)文本文件里面寫有1000個(gè)asc字符,那么就會(huì)占用磁盤上1000B的存儲(chǔ)空間,為了便于管理文件,文件系統(tǒng)都是按塊大小來分配給文件的,假如這個(gè)文件系統(tǒng)一個(gè)塊是4096的話,那么這個(gè)文件就會(huì)占用一個(gè)塊的,不管實(shí)際的內(nèi)容是1B仍是4000B.若是咱們有一個(gè)4MB的文件,那么它會(huì)在分區(qū)中占用:4MB/4096B=1000個(gè)塊.索引

如今咱們先作一個(gè)實(shí)際的無空洞文件來看看:虛擬機(jī)

#dd if=/dev/urandom of=testfile1 bs=4096 count=1000

這個(gè)命令會(huì)從/dev/urandom文件復(fù)制1000個(gè)塊,每塊大小4096,到testfile1文件去.

好了,咱們已經(jīng)有了testfile1這么一個(gè)4M的文件了,里面填充了一些隨機(jī)的內(nèi)容,你能夠more一下.

而后用ls -l查看這個(gè)文件的大小是4096000,用du -h testfile1來查看的話,文件占用的磁盤大小是4M,二者是同樣的.

下來是咱們的重點(diǎn),空洞文件,假如咱們有一個(gè)文件,它有4M的大小,可是它里邊很大一部分都是沒有存放數(shù)據(jù)的,這樣可不能夠呢?試一下:

#dd if=/dev/urandom of=testfile2 bs=4096 seek=999 count=1

這個(gè)命令跟前一個(gè)命令類似,不一樣的是,它其實(shí)復(fù)制了1個(gè)塊的內(nèi)容,前面的999個(gè)塊都跳過了.

咱們ls -l一下,發(fā)現(xiàn)文件的大小仍是4096000,用du -h testfile2查看,占用的塊大小是4K

咱們發(fā)現(xiàn),雖然文件是4M,可是實(shí)際在磁盤上只占用了4K的大小,這就是空洞文件的神奇之處.

實(shí)際中的空洞文件會(huì)在哪里用到呢?常見的場(chǎng)景有兩個(gè):

一是在下載電影的時(shí)候,發(fā)現(xiàn)剛開始下載,文件的大小就已經(jīng)到幾百M(fèi)了.

二是在建立虛擬機(jī)的磁盤鏡像的時(shí)候,你建立了一個(gè)100G的磁盤鏡像,可是其實(shí)裝起來系統(tǒng)以后,開始也不過只占用了3,4G的磁盤空間,若是一開始把100G都分配出去的話,無疑是很大的浪費(fèi).

而后講一下底層的實(shí)現(xiàn)吧,其實(shí)這個(gè)功能關(guān)鍵得文件系統(tǒng)支持,貌似FAT就不能夠吧,linux下一直都很好的支持這一特性,咱們舉個(gè)最簡(jiǎn)單的ext的例子吧,ext中記錄文件實(shí)際內(nèi)容的對(duì)應(yīng)信息的東東是一個(gè)叫索引表的東西,里面有十幾個(gè)條目,每一個(gè)條目存放對(duì)應(yīng)文件內(nèi)容塊的塊號(hào),這樣就能夠順序找到對(duì)應(yīng)的文件內(nèi)容了,你們可能說,幾M的一個(gè)文件,十幾個(gè)項(xiàng)哪夠啊,沒必要擔(dān)憂,通常索引表前面幾個(gè)項(xiàng)目是直接指向文件內(nèi)容的,若是這幾個(gè)不夠的話,日后的第一個(gè)項(xiàng)目不會(huì)指向文件內(nèi)容塊,而會(huì)指向一個(gè)存放項(xiàng)目的塊,這樣一下多出N個(gè)項(xiàng)目來,若是這樣還不夠,下面的那個(gè)是存放指向指向的項(xiàng)目,很差意思,我也繞暈了,總之,前面的是直接指向,下面這個(gè)是二級(jí)指向,再下面的是二級(jí)指向,以此類推,這樣,文件系統(tǒng)就能夠處理T數(shù)量級(jí)別的文件,看下圖:

到了空洞文件這里呢,咱們只須要把指向沒有文件內(nèi)容部分的索引項(xiàng)目置NULL就行了,這樣就不會(huì)指向?qū)嶋H的數(shù)據(jù)塊了,也不會(huì)占用磁盤空間了,就這么easy~

至于btrfs這些新一代文件系統(tǒng)呢,在空洞文件這里的原理跟ext仍是相似的.

最后介紹一下linux對(duì)空洞文件的處理,通過我最近的一些測(cè)試所得:

在同一文件系統(tǒng)ext4下,cat一個(gè)空洞文件到新文件,新文件再也不是空洞文件,cp一個(gè)空洞文件到新文件,新文件仍然是空洞文件.

在btrfs跟ext4之間作的結(jié)果同上面是一致的,可是在不一樣文件系統(tǒng)之間cp,由于不一樣文件系統(tǒng)分配的最小單元不一樣,因此du結(jié)果會(huì)不一樣.

在nfs的客戶端下,在nfs目錄下去cp,新文件仍然是空洞文件!!!可是cp會(huì)逐個(gè)的去比較文件的內(nèi)容,因此,受網(wǎng)絡(luò)情況搞得影響,過程有時(shí)候會(huì)很慢.

總結(jié)

以上是生活随笔為你收集整理的linux空洞目录,学习笔记:linux之文件空洞的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 69精品人妻一区二区三区 | 国产精品乱子伦 | 影音先锋中文字幕一区二区 | 黄色成年人 | 中文成人无字幕乱码精品区 | 椎名由奈av一区二区三区 | 色哟哟视频在线观看 | 国产精品免费视频一区 | 亚洲国产精品网站 | 亚洲国产福利 | 日韩午夜影院 | 午夜欧美激情 | 在线观看99| 国产免费av网 | 精品美女久久 | 牛牛影视一区二区 | 日韩国产一区二区 | 日韩网站在线观看 | www.婷婷| 深夜成人在线观看 | 亚洲第一免费 | 欧美高清x| 在线免费观看视频a | 国产小视频自拍 | 超碰啪啪| 在线波多野结衣 | 亚洲h视频在线观看 | 中文字幕亚洲无线码在线一区 | 国产一级片免费看 | 91狠狠操| 亚洲欧美综合另类自拍 | 小萝莉末成年一区二区 | 在线播放你懂的 | 亚州黄色 | 丝袜老师办公室里做好紧好爽 | 九九久久精品视频 | 欧美视频一区二区三区四区在线观看 | 中文字幕在线免费观看 | 日本视频黄 | 亚洲成人中文字幕 | 中文字幕人成 | 西野翔之公侵犯中文字幕 | 欧美一卡 | 日批视频在线免费看 | 恶虐女帝安卓汉化版最新版本 | 国产成人一区二区在线 | 20日本xxxxxxxxx46 欧美激情一级 | 亚洲国产v| 国产成人愉拍精品久久 | 又黄又高潮的视频 | 新天堂网 | 91视频国产一区 | 日韩视频一区二区三区 | 美女激情网 | 鸥美一级片 | 亚洲我不卡 | 五月婷婷小说 | 91麻豆成人精品国产 | 欧美亚洲综合久久 | 在线观看99 | 青青草原av | 影音先锋成人资源 | 片黄在线观看 | 国产免费黄网站 | 97国产精品久久 | 亚洲高清欧美 | 国产乱人对白 | 国产精品看片 | 91国内视频 | 粉嫩精品久久99综合一区 | 国产精品久久久久久久 | 欧美经典一区二区 | 欧美69av | 调教驯服丰满美艳麻麻在线视频 | 亚洲精品日韩在线 | 欧美亚洲激情视频 | 羞羞漫画在线 | 国产高清免费视频 | 日韩欧美自拍偷拍 | 亚洲精品视频一区二区 | 成人天堂av | 雨宫琴音一区二区三区 | 91红桃视频 | 国产黄a三级三级三级看三级男男 | 丰满秘书被猛烈进入高清播放在 | 看黄色的网站 | 国产 欧美 日韩 在线 | 久久久久国产精品熟女影院 | 96国产在线| 国产美女视频免费观看下载软件 | 亚洲影院在线 | 19韩国主播青草vip | 福利在线观看 | 欧美日韩在线成人 | 女女同性高清片免费看 | 一级视频在线 | 久操成人 | 久久人久久 | 精品一二三区久久aaa片 |