答え1
2つのファイルから始めましょう。
1M.dat
- 1MiBデータ(を使用して作成truncate --size 1M 1M.dat
)10M.dat
- 10MiBデータ(を使用して生成されたtruncate --size 10M 10M.dat
)
truncate --size 5M {file}
まず、これら2つのファイルに適用されるコマンドを検討してください。 2番目のファイルは期待どおりに切り捨てられますが、最初のファイルは切り捨てられます。増加する必要な5MiBファイルの長さを達成するためのサイズです。
truncate --size '<5M' {file}
次に、これら2つのファイルに適用されるコマンドを見てみましょう。 2番目のファイルはまだ予想通りに切り捨てられますが、最初のファイルは長さがすでに5MiB未満であるため、変更されていません。コマンドを「と読みます。ファイルを次に切り捨てます。最大5MB」。
答え2
ファイルが小さい場合、<
truncate
そのサイズに達するまでファイルの末尾にゼロバイトは追加されません。
したがって、この例はおそらくほとんどの場合に望むものです。
truncate -s '<1M' filename
これにより、ファイルの最初の1 MBだけが保持されます。
ファイルの末尾のみを保持するには、次のものを使用できますtail
。
tail -n 1000 filename > tmpfile && mv tmpfile filename