私はある量のバイトを重み付けするテキストファイルを持っています。bashで切り捨ててファイルを大きくする
私のファイルシステムをテストするには、プログラムでファイルを4096バイト大きくする必要があります。
truncate
コマンドを使用してこれを実行できるという印象がありますが、どのように入力すればいいですか - truncate myfile.txt -s 4096
を入力すると4096バイトのファイルが残ってしまいます。私にとって
私はある量のバイトを重み付けするテキストファイルを持っています。bashで切り捨ててファイルを大きくする
私のファイルシステムをテストするには、プログラムでファイルを4096バイト大きくする必要があります。
truncate
コマンドを使用してこれを実行できるという印象がありますが、どのように入力すればいいですか - truncate myfile.txt -s 4096
を入力すると4096バイトのファイルが残ってしまいます。私にとって
このような何かが働いている:
truncate -s +4096 myfile.txt
これは、指定したファイルに4069のバイトを追加します。私はあなたがプラス記号を欠場していると思う。
truncate
は、追加するバイトでファイルを縮小できないため、便利です。しかし、はにファイルを成長すると、ファイルの末尾に4096個のスペース文字を追加します
printf '%4096s' >> myfile.txt
のと同じくらい簡単です。
私はその違いを理解していません。他の言葉を使って説明できますか? – Jsevillamol
10バイトファイルに書き込むことはできませんが、10バイトよりも小さくなりますが、ファイルの末尾に*いくつかのバイト数を書き込むと、ファイルサイズが大きくなります。ここで、 'printf'は、標準出力に4096文字を書き込むだけです。これは、ターゲットファイルにリダイレクトされます(追加モードで開かれているので、既に存在するものを上書きするのではなく、既存のファイルの最後に書き込まれます)。 – chepner