truncate コマンドを使用することもできます:
truncate --size=1G test.txt
SIZE はバイト、KB、K、MB、M などで指定できます。必要なサイズは手で計算できると思います。そうでない場合は、おそらく stat コマンドを使用して、ファイルの現在のサイズに関する情報を取得できます。
perl -we 'open( FILE, "< ./test.txt" ) && truncate( FILE, 8 ) && close(FILE);'
ファイルを読み取り用に開きます。ただし、ファイルを切り詰めるには、ファイルを変更する必要があるため、読み取り専用のファイル ハンドルは機能しません。 「変更」モードを使用する必要があります ("+>"
).
副次的な問題として、人々がシステム コールを黙って失敗させてから、何が問題だったのかを尋ねると、いつも驚かされます。 必需品 問題の診断の一環として、生成されたエラー メッセージを確認します。理解できなくても、助けを求める人の生活がずっと楽になります。
以下はもう少し役に立ちます:
perl -we 'open(FILE, "<", "./test.txt") or die "open: $!";
truncate(FILE, 8) or die "truncate: $!";
close(FILE);'
確かに、それは「無効な引数」を報告しただけです。それでも、これは有用な情報であり、オープン モードが間違っているという結論に至った可能性があります (私の場合もそうでした)。
tail
を使用できます 最後の 1000 バイトをカットするには、例:
テール -c 1000 ファイル> ファイル 2
-c その他のオプションのために、ファイルの最後の 1000 バイトを出力します:
<ブロック引用>マンテール
元のファイルを生成したばかりのファイルに置き換えるには:
<ブロック引用>mvファイル2ファイル