通常,我們會使用 touch 指令來建立一個空檔。但是,在某些特定場景下,例如排查故障或進行測試時,我們可能需要建立特定大小的大文件,例如 500 MB 或 2 GB。此時,建立一個空文件並且再寫入大量的文字資料顯然是不可取的。
#那麼,有沒有更好的方法可以建立特定大小的新檔案呢?下面,我們將介紹幾種建立大檔案的方式,供大家參考。
dd 指令用於複製和轉換檔案。它最常見的用途是創建實時 Linux USB。
dd 指令是實際寫入硬碟,檔案產生的速度取決於硬碟的讀寫速度,根據檔案的大小,該指令將需要一些時間才能完成。
假設我們要建立一個名為 rumenz.img 的 2 GB 大小的文字文件,可以執行以下操作:
dd if=/dev/zero of=rumenz.img bs=2G count=1
我們可以根據需要來更改區塊大小和區塊數。例如,可以使用 bs=1M 和 count=1024 來獲得 1024 Mb 的檔案。
#truncate 指令將一個檔案縮小或擴展到所需大小。使用 -s 選項來指定檔案的大小。
接下來,我們使用 truncare 指令來建立一個 2GB 大小的檔案。
truncate -s 2G rumenz.img
可以使用ls -lh rumenz.img
指令查看產生的檔案。
預設情況下,如果請求的輸出檔案不存在,truncate 指令將會建立新檔案。我們可以使用 -c 選項來避免建立新檔案。
#fallocate 指令是我比較推薦的建立大檔案的方法,因為它建立大檔案的速度是最快的。
假設我們要建立一個 1 GB 的文件,可以執行以下操作:
fallocate -l 1G rumenz.img
可以使用ls -lh rumenz.img
查看產生的檔案。
dd 和 truncate 建立的檔案是稀疏文件。在電腦世界中,稀疏文件是一種特殊文件,具有不同的表觀文件大小(它們可以擴展到的最大大小)和真實文件大小(為磁碟上的資料分配了多少空間)。
fallocate 指令則不會建立稀疏文件,而且它的速度更快,這也是我比較推薦使用 fallocate 建立大文件的原因。
以上是怎麼在 Linux 中幾秒鐘創建一個 2GB 的大檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!