2017-10-30 10 views
3

私はある量のバイトを重み付けするテキストファイルを持っています。bashで切り捨ててファイルを大きくする

私のファイルシステムをテストするには、プログラムでファイルを4096バイト大きくする必要があります。

truncateコマンドを使用してこれを実行できるという印象がありますが、どのように入力すればいいですか - truncate myfile.txt -s 4096を入力すると4096バイトのファイルが残ってしまいます。私にとって

答えて

4

このような何かが働いている:

truncate -s +4096 myfile.txt 

これは、指定したファイルに4069のバイトを追加します。私はあなたがプラス記号を欠場していると思う。

2

truncateは、追加するバイトでファイルを縮小できないため、便利です。しかし、にファイルを成長すると、ファイルの末尾に4096個のスペース文字を追加します

printf '%4096s' >> myfile.txt 

のと同じくらい簡単です。

+0

私はその違いを理解していません。他の言葉を使って説明できますか? – Jsevillamol

+0

10バイトファイルに書き込むことはできませんが、10バイトよりも小さくなりますが、ファイルの末尾に*いくつかのバイト数を書き込むと、ファイルサイズが大きくなります。ここで、 'printf'は、標準出力に4096文字を書き込むだけです。これは、ターゲットファイルにリダイレクトされます(追加モードで開かれているので、既に存在するものを上書きするのではなく、既存のファイルの最後に書き込まれます)。 – chepner

関連する問題