GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで特定のサイズのファイルを作成するには?

このコマンドを使用してください:

dd if=$INPUT-FILE of=$OUTPUT-FILE bs=$BLOCK-SIZE count=$NUM-BLOCKS

大きな (空の) ファイルを作成するには、$INPUT-FILE=/dev/zero を設定します。 .
ファイルの合計サイズは $BLOCK-SIZE * $NUM-BLOCKS になります .
作成される新しいファイルは $OUTPUT-FILE になります .


現代の方が簡単で速いです。 Linux の場合 (1 つ選択)

truncate -s 10G foo
fallocate -l 5G bar

必要 truncate スパース ファイルをサポートするファイル システムでは、スパース ファイルと fallocate が作成されます。 しない。スパース ファイルとは、ファイルを構成するアロケーション ユニットが 実際 ではないファイルです。 使用されるまで割り当てられます。ファイルのメタデータは ただし、かなりのスペースを占有しますが、ファイルの実際のサイズに近いほどではない可能性があります。このタイプのファイルには長所と短所があるため、詳細については、スパース ファイルに関するリソースを参照してください。非スパース ファイルには、そのブロック (アロケーション ユニット) が事前に割り当てられています。つまり、ファイル システムが認識する限り、スペースは予約されています。また、fallocate truncate でもありません ファイルの内容を指定された値に設定しません dd 、代わりに fallocate で割り当てられたファイルの内容 または truncate 作成中に割り当てられたユニットに存在したゴミの値である可能性があり、この動作が望ましい場合と望ましくない場合があります。 dd コマンドラインオプションで指定されたように、値またはデータのチャンクをファイルストリーム全体に実際に書き込むため、最も遅くなります。

この動作は、使用するファイル システムと、そのファイル システムが標準または仕様に準拠しているかどうかによって、異なる可能性があります。したがって、適切な方法が使用されるように、適切な調査を行うことをお勧めします。


小さなファイルの場合:

dd if=/dev/zero of=upload_test bs=file_size count=1

どこで file_size は、テスト ファイルのバイト単位のサイズです。

大きなファイルの場合:

dd if=/dev/zero of=upload_test bs=1M count=size_in_megabytes

Tom の投稿をフォローアップするために、dd を使用してスパース ファイルを作成することもできます。

dd if=/dev/zero of=the_file bs=1 count=0 seek=12345

これにより、ほとんどの UNIX で「穴」のあるファイルが作成されます。データは実際にはディスクに書き込まれず、ゼロ以外のものが書き込まれるまでスペースを占有しません。


Linux
  1. Linuxでスワップを作成する方法

  2. Linuxでスワップファイルを作成する方法

  3. LinuxでCでファイルを書く方法は?

  1. Linuxでパスワードで保護されたZIPファイルを作成する方法

  2. Linuxでスワップスペースを作成または増やす方法

  3. Linuxでファイルを特定のサイズにカットする方法は?

  1. Linuxで特定のサイズのファイルを作成する方法

  2. Linux でファイル圧縮を使用して ZFS ファイルシステムを作成する方法

  3. コマンドラインから特定のサイズのファイルを作成するにはどうすればよいですか?