関数 truncate
を使用します
http://linux.die.net/man/2/truncate
int truncate(const char *path, off_t length);
int ftruncate(int fd, off_t length);
切り捨てはファイル名を取ります
ftruncate は開いているファイル記述子を取ります
これらは両方ともファイルの長さを length
に設定します そのため、切り捨てられるか伸びます (後者の場合、ファイルの残りの部分は NULL/ZERO で埋められます)。
[編集]
truncate (Linux シェル コマンド) も機能します
**SYNTAX**
truncate -s integer <filename>
**OPTIONS**
-s number specify the new file length. If the new length is smaller than the current filelength data is lost. If the new length is greater the file is padded with 0. You can specify a magnitude character to ease large numbers:
b or B size is bytes.
k size is 1000 bytes.
K size is 1024 bytes.
m size is 10^6 bytes.
M size is 1024^2 bytes.
g size is 10^9 bytes.
G size is 1024^3 bytes.
**EXAMPLES**
To shrink a file to 10 bytes:
truncate -s 10 /tmp/foo
To enlarge or shrink a file to 345 Megabytes:
truncate -s 345M /tmp/foo
[/編集]
truncate
への参照はたくさんありましたが、 このスレッドの関数では、スクリプト環境からファイルを一定量削減することに関する OP の質問に実際に答えた人は誰もいませんでした。ケビンの答えは truncate
を使用しました ターゲット ファイルのサイズを固定量に変更する必要がありますが、もちろん、このソリューションの正しさを確認するには、ユーザーが最初にターゲット ファイルのサイズから最後に余分なデータを差し引いたものを知る必要があります。
-s, --size=SIZE set or adjust the file size by SIZE bytes
Truncate
SIZE の前に -
を付けて、ターゲット ファイルの末尾から直接データを削除することを実際にサポートしています。 キャラクター。
たとえば、ファイルのサイズを 314 バイトに変更するには、次のようにします:
truncate --size=-314 target_file.bin
「切り捨て」を使用するのが最善の方法です。例をいくつか投稿します:
<オール>ファイル「PNav-h.db」があり、50176 バイトです。
-rw-r--r-- 1 user user 50176 Mar 8 23:43 PNav-h.db
$truncate -s 1000 PNav-h.db
ファイルサイズを 1000 バイトに設定します
-rw-r--r-- 1 user user 1000 Mar 9 00:02 PNav-h.db
あなたの場合、 $truncate --size=xxx xxfilename
を使用してください 、 -<size number>
を使用 ファイルサイズを縮小する
$truncate --size=-300 PNav-h.db
-rw-r--r-- 1 user user 700 Mar 9 00:07 PNav-h.db
最終的なファイル サイズ =1000-300=700
+<size number>
を使用 ファイルサイズを大きくするには
$truncate --size=+500 PNav-h.db
-rw-r--r-- 1 user user 1200 Mar 9 00:09 PNav-h.db
最終的なファイル サイズ =700 + 500 =1200
-
がない場合 または +
、ファイルサイズを設定することです。
$truncate --size=60000 PNav-h.db
-rw-r--r-- 1 user user 60000 Mar 9 00:12 PNav-h.db
最終的なファイル サイズを 60000 に設定