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的此類文件都是可以的。