Linux,ファイルのサイズを、指定した値に変換する方法

スポンサーリンク

鍛錬 476

Linux,ファイルのサイズを、指定した値に変換する方法

ファイルのサイズを、小さくしたり大きくしたりと指定した値に変換するには、truncate を使用します。
 
使用方法は、以下に示す通りです。

truncate -s サイズ ファイル名

オプション

以下は、上記のオプションについてです。

オプション 機能
-s ファイルサイズを指定する
スポンサーリンク

サンプルファイル

以下は、今回使用するサンプルファイル、sample.txt です。

ファイルサイズは 7 バイトとなっています。

ABCDEFG
スポンサーリンク

実行結果

以下は、ファイルサイズを大きくする場合と小さくする場合について確認しています。

元のファイルサイズよりも大きいサイズを指定した場合

以下は、ファイルサイズが 7 バイトのファイル sample.txt を、32 バイトに変換しています。

変換後、hexdump を使用して16進数とASCII文字でファイル内容を確認しています。

関連記事:Linux,ファイル内容を16進数とASCII文字に変換して出力

***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ ls -l
合計 4
-rwxr-xr-x 1 *** *** 7 Apr  2 22:18 sample.txt
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ truncate -s 32 sample.txt
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ ls -l
合計 4
-rwxr-xr-x 1 *** *** 32 Apr  2 22:19 sample.txt
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ hexdump -C sample.txt
00000000  41 42 43 44 45 46 47 00  00 00 00 00 00 00 00 00  |ABCDEFG.........|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020

 
上記に示した通り、元のファイルサイズよりも大きいサイズを指定した場合は、0x00 が残りのサイズ分だけ書き込まれます。

元のファイルサイズよりも小さいサイズを指定した場合

以下は、ファイルサイズが 7 バイトのファイル sample.txt を、3 バイトに変換しています。

変換後、hexdump を使用して16進数とASCII文字でファイル内容を確認しています。

関連記事:Linux,ファイル内容を16進数とASCII文字に変換して出力

***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ ls -l
合計 4
-rwxr-xr-x 1 *** *** 7 Apr  2 22:31 sample.txt
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ truncate -s 3 sample.txt
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ ls -l
合計 4
-rwxr-xr-x 1 *** *** 3 Apr  2 22:32 sample.txt
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ hexdump -C sample.txt
00000000  41 42 43                                          |ABC|
00000003

 
上記に示した通り、ファイルを指定したサイズに変換することができました。

タイトルとURLをコピーしました