Shell
使用 BSD jot 生成具有隨機內容的文件
大多數 Linux 系統都帶有 GNU seq(用於生成數字或字元序列的實用程序)。然而,一個更古老且更靈活的實用程序是未充分利用且未知的實用程序 jot。每個 BSD 系統,包括 MacOS X,都會帶有 jot(而不是 seq)。
(…)
實際上,要生成一個大文件(本例中為 5Gb),請嘗試以下操作:
jot -r -c -s '' $(( 1024 * 1024 * 5 )) > file.5gb
當我嘗試這個時,它會生成一個 5 MB 的文件。
jot -r -c -s '' $(( 1024 * 1024 * 5 )) > file.5gb du -sh file.5gb 5.0M file.5gb
這個命令究竟做了什麼?如何指定大小,例如 2 GB 文件?這是在 macOS 上生成隨機內容文件的推薦方法嗎?您是否使用其他工具來處理隨機內容文件?
seq
無法生成隨機內容。它是否正確?
範例稍有錯誤,結果是正確的。讓我解釋。
這
$(( 1024 * 1024 * 5 ))
只是一個和,但它只能在sh
shell環境下工作。例如:sh echo $(( 1024 * 1024 * 5)) 5242880
那部分排序,回到
jot
. 這-r
是“隨機數據”,這應該是您在文件中找到的內容。是
-c
簡寫,與使用相同-w %c
。雖然我不確定是什麼%c
意思,但它似乎確實產生了一個字節的隨機數據。你可以換掉-c
for-b x
,你會得到相同大小的文件,但它只包含x
重複的。接下來是
-s ''
這意味著沒有行返回。如果沒有這個,每個字元(或隨機數據)之後都會有一行返回。您的文件也應該是原來的兩倍。下一部分是
$(( 1024 * 1024 * 5 ))
。這是要產生的“數據”量。如上所示,這個總和就是數字5242880
(只有 5MiB),這就是文件的大小加上尾隨行返回的 1 個字節。例如:sh jot -r -c -s '' $(( 1024 * 1024 * 5 )) > file.5mb ls -al file.5mb -rw-r--r-- 1 tigger tigger 5242881 2 Apr 15:39 file.5mb