ゼロバイトを含むテストファイルを作成します。

ゼロバイトを含むテストファイルを作成します。

空のファイルを作成する方法を知っています。

touch /var/tmp/nullbytes

しかし、bashを使用してコマンドラインからnullバイトのみを含む1MBファイルを作成するにはどうすればよいですか?

ベストアンサー1

GNUの使用truncate:

truncate -s 1M nullbytes

nullbytesあらかじめ存在しないと仮定)1MBのスパースファイルが生成されます。ファイルはゼロでいっぱいに見えますが、ディスク領域を占有しません。

そうでない場合は、truncate次のものを使用できますdd

dd bs=1048576 seek=1 of=nullbytes count=0

(一部のdd実装では1048576をに変更できます1M

ディスク容量が必要な場合割り当てられた、Linux、および一部のファイルシステムでは、次のことができます。

fallocate -l 1M nullbytes

これは実際にデータをディスクに書き込むことなくスペースを割り当てます(スペースは予約されていますが初期化されていないとマークされています)。

dd < /dev/zero bs=1048576 count=1 > nullbytes

0は実際にディスクに書き込まれます。これは最も効率が低いですが、ファイルへのアクセス中にドライブを回転させる必要がある場合はこれが必要です。

ddまたは、NULバイト生成をだます@mikeservの方法:

dd bs=1048576 count=1 conv=sync,noerror 0> /dev/null > nullbytes

GNUの代替では、headブロックサイズを指定する必要はありません(1Mは問題ありませんが、10Gはそうではありません):

head -c 1M < /dev/zero > nullbytes

または、進行状況バーを取得します。

pv -Ss 1M < /dev/zero > nullbytes

おすすめ記事