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


106

という名前のファイルを生成したいと思いますexample.file。使える

touch example.file

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



コンテンツが何であるかを気にしないので、ゼロで埋めても問題ないと思います。
Bgs

回答:


136

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
...またはbs = 1Mおよびcount = 24を使用します。多くの人が読みやすく読みやすいと感じています。
Bgs

3
たぶん、巨大なブロックサイズを使用していけない、私のシステムは好きではなかったbs=1G count=1
ThorSummoner

10
Macでは24 m(小さいm)を使用します。これは、Macが大きいMを好まないためです。dd if=/dev/zero of=output.dat bs=24m count=1
SPRBRN

1
Android(5.1.1、バージョンまたは携帯電話に固有の場合もそうでない場合もある)では、小文字mも使用する必要がありました。
エリック

1
ブロックサイズが大きい場合の問題は何ですか?1Gファイルには1Gブロックサイズを使用したいと考えていました。
1

43

非埋め込みLinuxまたはCygwin(またはGNU coreutilsを備えたシステム)およびFreeBSDの場合:

truncate -s 24m example.file

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

nullバイトはディスク容量を消費しません。ファイルはスパースファイルです

多くのシステムで、head -c 24m </dev/zero >example.filenullバイトでいっぱいの非スパースファイルを作成します。システムにオプションheadがない場合-c(一般的ですが、POSIXにはありません)、dd bs=1024k count=24 </dev/zero >example.file代わりに使用できます(これはPOSIX準拠です)。


BusyBoxのは、また、それを持っているだろう、あまりにも:-)ので、ほとんどの組み込みシステムを
チロSantilli新疆改造中心法轮功六四事件

29

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

fallocate -l 24M filename

明らかに、dd24MBのファイルを使用しても最新のシステムでは時間がかかりませんが、大きなファイルは著しく遅くなる可能性があります。


13

ddを使用できます。

dd if = / dev / zero of = outputfile.out bs = 1024k count = 24

または、Solarisを使用している場合

mkfile 24m outputfile.out

3
mkfileによっては、あまりにもMacOSの上に存在するようだ
ベン・フリン

-nスパースファイルを作成するために渡すこともできます
russbishop

0
FROM_NODE=N01;
echo; cd $MOUNT_PATH; pwd; ls -la; sleep 1; echo;
WHEN="$(date +%Y-%m-%d_%H-%M-%S)";
fallocate -l 10M $MOUNT_PATH/"$FROM_NODE"_"$WHEN".dump
ls -lha; echo;

1
Qが24を要求している間、これは10メガとは言えませんか?
ジェフシャラー

2
fallocate良い答えかもしれませんが、なぜ他のすべての行ですか?答えは、求められたとおりに実行され、それ以上は実行されないようにします。
JigglyNaga

1
サーがお好みの場合: fallocate -l 10M somefile.dump
パスカルアンディ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.