このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linux基礎:コマンド練習04

コマンド練習04

 「コマンド練習04」では 3章の前半で登場した主要コマンドについて 練習問題を通して学びます。ここで取り扱うコマンドは、ディスク容量を扱うコマンド(ddfallocatetruncate)と、ファイルの圧縮・解凍を行うコマンド(gzipgunzipzipunzip)です。これらはシステム管理やデータ処理で頻繁に利用されるものであり、ファイルサイズの調整やアーカイブ操作の理解に役立ちます。

 ここでは、コマンドの機能を 表や図 を用いて整理し、さらに 「練習+模範解答例」 を提示します。特に問題の前半では、練習用の圧縮ファイルを自作してから操作を行う流れを体験できるように構成しました。

コマンド解説

1.dd コマンド(データコピー&ファイル作成)

指定サイズのファイルを作成したり、ディスクイメージをコピーする。

オプション説明使用例
if=入力ファイルdd if=/dev/zero of=dummy.img bs=1M count=5
of=出力ファイル
bs=ブロックサイズ
count=ブロック数

実行イメージ

/dev/zero → dummy.img(5MBの空ファイル生成)

2.fallocate コマンド(指定サイズのファイル確保)

ディスク上に指定したサイズの空ファイルを効率的に作成。

使用例説明
fallocate -l 10M empty1.dat10MB のファイル作成

3.truncate コマンド(ファイルサイズ変更)

既存ファイルのサイズを変更する。

使用例説明
truncate -s 1M empty1.datファイルサイズを 1MB に縮小
truncate -s 20M empty1.datファイルサイズを 20MB に拡張

4.gzip コマンド(圧縮)

ファイルを圧縮し、.gz 拡張子をつける。

使用例説明
gzip sample.txtsample.txt.gz を生成
gzip -c sample.txt > sample_copy.gz元ファイルを残して圧縮

5.gunzip コマンド(解凍)

.gz ファイルを解凍する。

使用例説明
gunzip sample.txt.gzsample.txt に解凍

6.zip コマンド(ZIP形式で圧縮)

複数ファイルをまとめて圧縮。

使用例説明
zip archive.zip file1 file22つのファイルを ZIP にまとめる
zip -r backup.zip dir1ディレクトリごと圧縮

7.unzip コマンド(ZIP形式の解凍)

ZIPファイルを解凍。

使用例説明
unzip archive.zipカレントディレクトリに展開
unzip archive.zip -d output_dir特定ディレクトリに展開

練習問題 + 模範解答例

問題1(準備)

サイズ 5MB の空ファイル dummy.img を作成してください。
模範解答例

[user@rocky9 ~]$ dd if=/dev/zero of=dummy.img bs=1M count=5
5+0 レコード入力
5+0 レコード出力
5242880 bytes (5.2 MB, 5.0 MiB) copied, 0.00444291 s, 1.2 GB/s

問題2(準備)

サイズ 10MB のファイル empty1.dat を作成してください。
模範解答例

[user@rocky9 ~]$ fallocate -l 10M empty1.dat
[user@rocky9 ~]$ ls -lh empty1.dat 
-rw-r--r--. 1 user user 10M  8月 29 23:36 empty1.dat

問題3

empty1.dat のサイズを 2MB に縮小してください。
模範解答例

[user@rocky9 ~]$ truncate -s 2M empty1.dat
[user@rocky9 ~]$ ls -lh empty1.dat 
-rw-r--r--. 1 user user 2.0M  8月 29 23:36 empty1.dat

問題4

テキストファイル memo.txt を作成し、それを gzip 形式で圧縮してください。
模範解答例

[user@rocky9 ~]$ echo "This is a practice memo file" > memo.txt
[user@rocky9 ~]$ gzip memo.txt

問題5

圧縮された memo.txt.gz を解凍してください。
模範解答例

[user@rocky9 ~]$ gunzip memo.txt.gz

問題6

log1.txtlog2.txt を作成し、それらを logs.zip にまとめて圧縮してください。
模範解答例

[user@rocky9 ~]$ echo "Log File 1" > log1.txt
[user@rocky9 ~]$ echo "Log File 2" > log2.txt
[user@rocky9 ~]$ zip logs.zip log1.txt log2.txt
  adding: log1.txt (stored 0%)
  adding: log2.txt (stored 0%)

問題7

作成した logs.zip を解凍してください。
模範解答例

[user@rocky9 ~]$ unzip logs.zip
Archive:  logs.zip
replace log1.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
 extracting: log1.txt                
replace log2.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
 extracting: log2.txt  

問題8

images ディレクトリ全体を ZIP 圧縮して images_backup.zip を作成してください。
模範解答例

[user@rocky9 ~]$ zip -r images_backup.zip images
  adding: images/ (stored 0%)
  adding: images/dragon.jpg (deflated 0%)

問題9

dummy.img を gzip で圧縮し、元のファイルを残したまま dummy.img.gz を作成してください。
模範解答例

[user@rocky9 ~]$ gzip -c dummy.img > dummy.img.gz

まとめ

 「コマンド練習04」では、3章の前半で登場した主要コマンド を対象に、ディスク容量を扱うコマンドと圧縮・解凍コマンドを実践しました。前半では ddfallocatetruncate を使ってファイルを生成・調整する方法を学び、後半では gzipgunzipzipunzip を使って圧縮・解凍を体験しました。

 実際にファイルを作成し操作する流れを通じて、Linux におけるファイル管理スキルを確実に習得できます。