特定のサイズのファイルを作成しますか?

特定のサイズのファイルを作成しますか?

というファイルを生成したいですexample.file。使用できます。

touch example.file

しかし、ファイルサイズを正確に24MBにしたいと思います。タッチのマンページを確認しましたが、対応するパラメータはありません。特定のサイズのファイルを生成する簡単な方法はありますか?

答え1

ddが利用可能です:

dd if=/dev/zero of=output.dat  bs=24M  count=1

または

dd if=/dev/zero of=output.dat  bs=1M  count=24

またはMacでは

dd if=/dev/zero of=output.dat  bs=1m  count=24

答え2

組み込まれていないLinuxまたはCygwin(またはGNU coreutilsを持つすべてのシステム)とFreeBSDで:

truncate -s 24m example.file

これにより、ヌルバイトでいっぱいのファイルが生成されます。ファイルがすでに存在し、小さい場合は、nullバイトを使用して要求されたサイズに拡張します。ファイルがすでに存在し、大きい場合は、要求されたサイズに切り捨てられます。

NULLバイトはディスク容量を占有せず、ファイルはスパースファイル

多くのシステムでは、head -c 24m </dev/zero >example.fileヌルバイトで埋められた非希少ファイルを作成します。このオプションがシステムでhead利用できない場合-c(通常はPOSIXには存在しません)、dd bs=1024k count=24 </dev/zero >example.fileこれを使用できます(POSIX互換)。

答え3

ファイルの内容を気にしない場合は、以下を使用するよりもはるかに高速ですdd

fallocate -l 24M filename

明らかに、dd最新のシステムでは24MBのファイルで作業するのに時間がかかりませんが、大きなファイルは著しく遅くなる可能性があります。

答え4

引用するその他の要約:

  • カット
    • truncate -s 24M example.file
  • エラー位置
    • fallocate -l $((24*1024*1024)) example.file
    • ランダムデータ
      • head -c 24MB /dev/urandom > example.file
    • ゼロデータ
      • head -c 24MB /dev/zero > example.file
  • DD
    • dd if=/dev/urandom of=example.file bs=24MB count=1
      • dd if=/dev/urandom of=example.file bs=4MB count=6

関連情報