Linux,2つの指定したファイルの、ファイルサイズを同じにする

スポンサーリンク

鍛錬 493

Linux,2つの指定したファイルの、ファイルサイズを同じにする

2つの指定したファイルの、ファイルサイズを同じにする(揃える)には、truncate を使用します。
 
使用方法は、以下に示す通りです。

「変換対象ファイル」のファイルサイズを「参照ファイル」と同じにする

truncate -r 参照ファイル 変換対象ファイル

オプション

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

オプション 機能
-r 参照ファイル 参照ファイルのファイルサイズと同じにする
スポンサーリンク

実行結果

以下は、参照ファイルのファイルサイズが、変換対象のファイルサイズよりも小さい場合と大きい場合について確認しています。

参照ファイルが、変換対象のファイルサイズよりも小さい場合

以下は、sample_2.txt (7バイト) のファイルサイズを、sample_1.txt (3バイト) のファイルサイズと同じサイズに変換しています。

ファイル名 ファイルサイズ
sample_1.txt (参照ファイル) 3 (バイト)
sample_2.txt (変換対象ファイル) 7 (バイト)
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ ls -l
合計 8
-rwxr-xr-x 1 *** *** 3 Apr  3 22:43 sample_1.txt
-rwxr-xr-x 1 *** *** 7 Apr  3 22:43 sample_2.txt
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ truncate -r sample_1.txt sample_2.txt
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ ls -l
合計 8
-rwxr-xr-x 1 *** *** 3 Apr  3 22:43 sample_1.txt
-rwxr-xr-x 1 *** *** 3 Apr  3 22:44 sample_2.txt

 
上記に示した通り、ファイルサイズが同じ 3 (バイト) になりました。

参照ファイルが、変換対象のファイルサイズよりも大きい場合

以下は、sample_2.txt (7バイト) のファイルサイズを、sample_1.txt (32バイト) のファイルサイズと同じサイズに変換しています。

sample_2.txt については、変換前と変換後で hexdump を使用してファイル内容を確認しています。

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

ファイル名 ファイルサイズ
sample_1.txt (参照ファイル) 32 (バイト)
sample_2.txt (変換対象ファイル) 7 (バイト)
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ ls -l
合計 8
-rwxr-xr-x 1 *** *** 32 Apr  3 22:48 sample_1.txt
-rwxr-xr-x 1 *** ***  7 Apr  3 22:49 sample_2.txt
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ hexdump -C sample_2.txt
00000000  41 42 43 44 45 46 47                              |ABCDEFG|
00000007
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ truncate -r sample_1.txt sample_2.txt
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ ls -l
合計 8
-rwxr-xr-x 1 *** *** 32 Apr  3 22:48 sample_1.txt
-rwxr-xr-x 1 *** *** 32 Apr  3 22:50 sample_2.txt
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ 
***@ubuntu:~/***/test/tmp$ hexdump -C sample_2.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 が残りのサイズ分だけ書き込まれます。

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