TAR(圧縮・展開)
フォルダを ZIP ファイルにまとめたり、ダウンロードした ZIP ファイルを展開したりする作業は、エクスプローラーの右クリックメニューからでも行えます。しかし、バッチファイルでバックアップを自動化したいときなどは、コマンドで実行できると便利です。
Windows 10(バージョン 1803)以降には、TAR コマンドが標準で搭載されています。追加のソフトウェアをインストールしなくても、ZIP ファイルの作成・展開ができます。
TAR コマンドの基本
tar {-c|-x|-t} [オプション] -f アーカイブファイル [ファイルまたはフォルダ]
主なオプションは次のとおりです。
| オプション | 説明 |
|---|---|
-c | アーカイブを作成する(create) |
-x | アーカイブを展開する(extract) |
-t | アーカイブの中身を一覧表示する(list) |
-f | 対象のアーカイブファイルを指定する(file) |
-a | 拡張子から圧縮形式を自動で判断する(作成時のみ) |
-v | 処理したファイル名を表示する(verbose) |
-C | 作業フォルダを切り替える(展開先・圧縮元の指定に使う) |
-z | gzip 形式で圧縮する(.tar.gz)。展開時は不要 |
Windows の TAR では、オプションの前に - を付けて tar -cf のように記述します。複数のオプションは -cvf のようにまとめて書けます。-f は直後にファイル名を取るため、まとめて書くときは最後に置きます。
フォルダを ZIP ファイルに圧縮する
-a オプションを付けると、出力ファイルの拡張子から圧縮形式が自動で選ばれます。拡張子を .zip にすれば ZIP ファイルが作成されます。
tar -a -c -f backup.zip docs
カレントディレクトリにある docs フォルダが、backup.zip として圧縮されます。カレントディレクトリについては
-a を付けずに tar -c -f backup.zip docs と実行すると、拡張子が .zip でも、中身は圧縮されていない tar 形式のファイルになります。ZIP ファイルとして使いたいときは、必ず -a を付けてください。
複数のファイルをまとめる
ファイルやフォルダを空白区切りで複数指定できます。
tar -a -c -f report.zip report.txt data.csv images
圧縮したファイル名を確認しながら実行する
-v を付けると、アーカイブに追加したファイル名が 1 つずつ表示されます。
tar -a -c -v -f backup.zip docs

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超入門

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門
ZIP ファイルを展開する
展開するには -x を使います。
tar -x -f backup.zip
展開先を指定する
-C で展開先のフォルダを指定できます。
tar -x -f backup.zip -C D:\Work\restore
-C で指定したフォルダが存在しない場合、TAR はフォルダを作成せずにエラーになります。事前に
if not exist D:\Work\restore mkdir D:\Work\restore
tar -x -f backup.zip -C D:\Work\restore
展開先に同じ名前のファイルがあると、確認なしで上書きされます。大切なファイルがあるフォルダに展開するときは、別のフォルダに展開してから内容を確認することをおすすめします。上書きしたくない場合は、-k オプションを付けると既存のファイルを残したまま展開できます。
特定のファイルだけを展開する
アーカイブ内のパスを末尾に指定すると、そのファイルだけを展開できます。パスはアーカイブの中身を確認したうえで指定します。
tar -x -f backup.zip docs/readme.txt
アーカイブの中身を確認する
展開する前に中身を確認するには、-t を使います。
tar -t -f backup.zip
ファイル数が多いときは、パイプで
や に渡すと確認しやすくなります。パイプについては を参照してください。tar -t -f backup.zip | find ".txt"
圧縮に含めたくないファイルを除外する
--exclude で、パターンに一致するファイルを圧縮の対象から外せます。パターンは --exclude の直後に指定し、* などのワイルドカードが使えます。
tar -a -c -f backup.zip --exclude "*.tmp" --exclude "*.log" docs
--exclude は、慣習的に圧縮するフォルダ名より前に書きます。パターンはコマンドプロンプトではなく TAR が解釈するため、"*.tmp" のように引用符で囲みます。
別のフォルダにあるファイルを圧縮する
-C を圧縮時に使うと、指定したフォルダに移動してから、続けて指定したファイルやフォルダを追加します。これにより、アーカイブ内に C:\Users\... のような余計なフォルダ階層が含まれません。-C は、対象のファイルやフォルダより前に書きます。
tar -a -c -f D:\Backup\docs.zip -C C:\Users\user\Documents docs
アーカイブ内は docs/... から始まる構造になります。-C で指定した C:\Users\user\Documents 自体は、アーカイブには含まれません。
圧縮するフォルダの中に出力先の ZIP ファイルを作ると、作成中のアーカイブ自身が対象に含まれてしまい、エラーや意図しない結果の原因になります。上の例のように、出力先は圧縮するフォルダの外に指定してください。
tar.gz 形式を扱う
Linux など他の環境とファイルをやり取りする場合は、.tar.gz 形式がよく使われます。-a を使えば、拡張子 .tar.gz から gzip 圧縮が自動で選ばれます。
tar -a -c -f backup.tar.gz docs
tar -x -f backup.tar.gz
展開時は形式が自動で判別されるため、-z を付けなくても展開できます。
日付付きのバックアップを作成する
で紹介している日付の取得方法と組み合わせると、日付入りのファイル名でバックアップを作成できます。@echo off
setlocal
set "stamp=%date:~0,4%%date:~5,2%%date:~8,2%"
tar -a -c -f "D:\Backup\docs_%stamp%.zip" -C "C:\Users\user\Documents" docs
if %errorlevel% neq 0 (
echo バックアップに失敗しました。
exit /b 1
)
echo バックアップが完了しました。
%date% の書式は地域設定によって異なります。上の例は 2026/10/26 形式を前提にしています。確実に動かしたい場合は
PowerShell の Compress-Archive との違い
PowerShell にも Compress-Archive と Expand-Archive という ZIP 用のコマンドレットがあります。コマンドプロンプトから PowerShell を呼び出すこともできますが、起動に時間がかかり、記述も長くなります。
| 項目 | TAR | Compress-Archive |
|---|---|---|
| 実行場所 | コマンドプロンプト・PowerShell | PowerShell |
| 対応形式 | zip、tar、tar.gz など | zip のみ |
| 記述の長さ | 短い | 長め |
シンプルな圧縮・展開が目的であれば、コマンドプロンプトから直接実行できる TAR が手軽です。
古い Windows では使えない
TAR コマンドは Windows 10 バージョン 1803(2018 年 4 月)以降に搭載されています。それより古い環境では、'tar' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と表示されます。
TAR が使えるかどうかは、次のコマンドで確認できます。
tar --version
バージョン番号が表示されれば利用できます(表示される番号は環境によって異なります)。
まとめ
| 操作 | コマンド |
|---|---|
| フォルダを ZIP に圧縮 | tar -a -c -f 出力.zip フォルダ |
| ZIP を展開 | tar -x -f 入力.zip |
| 展開先を指定 | tar -x -f 入力.zip -C 展開先 |
| 中身を一覧表示 | tar -t -f 入力.zip |
| ファイルを除外 | --exclude "パターン" |
| tar.gz で圧縮 | tar -a -c -f 出力.tar.gz フォルダ |