UNIXで大容量ファイルを作成する方法は?

UNIXで大容量ファイルを作成する方法は?

Windowsでこのようなことをする方法を見つけました。

echo "This is just a sample line appended  to create a big file. " > dummy.txt
for /L %i in (1,1,21) do type dummy.txt >> dummy.txt

http://www.windows-commandline.com/how-to-create-large-dummy-file/

UNIXでファイルをコピーして追加し、プロセスを繰り返す方法はありますか?それはまるでfor .. cat file1.txt > file1.txt

ベストアンサー1

yes "Some text" | head -n 100000 > large-file

そしてcsh/ tcsh

repeat 10000 echo some test > large-file

そしてzsh

{repeat 10000 echo some test} > large-file

GNUシステムでは、以下も参照してください。

seq 100000 > large-file

または:

truncate -s 10T large-file

(10TiBスパースファイルの作成(非常に大きいがディスク容量を占有しない))および他の代替議論「0バイトが多いテストファイルの作成」


そうするのはcat file >> file悪い考えです。

catまず、出力ファイルと同じファイルの読み取りを拒否するいくつかの実装では機能しません。しかし、これを実行してこの問題を解決しても、内部バッファが内部バッファよりも大きいと、cat file | cat >> file以前に作成したデータが読み込まれるため、無限ループに陥ります。filecatcat

また、回転しているハードドライブがサポートするファイルシステムでは、(メモリ内の可能なサイズより大きいサイズに達した後)、ドライブがデータを読み取る場所と書き込む位置の間を前後に移動する必要があるため、かなり非効率的です。

おすすめ記事