dd命令可以輕易實現創建指定大小的文件,如
dd if=/dev/zero of=test bs=1M count=1000
會生成一個1000M的test文件,文件內容爲全0(因從/dev/zero中讀取,/dev/zero爲0源)。
但是這樣爲實際寫入硬盤,文件產生速度取決於硬盤讀寫速度,如果欲產生超大文件,速度很慢。
在某種場景下,我們只想讓文件系統認爲存在一個超大文件在此,但是並不實際寫入硬盤。
則可以
dd if=/dev/zero of=test bs=1M count=0 seek=100000
此時創建的文件在文件系統中的顯示大小爲100000MB,但是並不實際佔用block,因此創建速度與內存速度相當。
seek的作用是跳過輸出文件中指定大小的部分,這就達到了創建大文件,但是並不實際寫入的目的。
當然,因爲不實際寫入硬盤,所以你在容量只有10G的硬盤上創建100G的此類文件都是可以的。
另外可以參見一篇博客:https://blog.csdn.net/xizaihui/article/details/53307578