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作業フォルダを切り替える(展開先・圧縮元の指定に使う)
-zgzip 形式で圧縮する(.tar.gz)。展開時は不要
オプションの前の「-」

Windows の TAR では、オプションの前に - を付けて tar -cf のように記述します。複数のオプションは -cvf のようにまとめて書けます。-f は直後にファイル名を取るため、まとめて書くときは最後に置きます。

フォルダを ZIP ファイルに圧縮する

-a オプションを付けると、出力ファイルの拡張子から圧縮形式が自動で選ばれます。拡張子を .zip にすれば ZIP ファイルが作成されます。

フォルダを
tar -a -c -f backup.zip docs
- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>tar -a -c -f backup.zip docs

カレントディレクトリにある docs フォルダが、backup.zip として圧縮されます。カレントディレクトリについては

を参照してください。

-a を付け忘れると 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
- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>tar -a -c -v -f backup.zip docs
a docs
a docs/readme.txt
a docs/memo.txt
C:\users\user>
おすすめ書籍※ 広告を含む場合があります
中小企業経営者のためのRPA入門 RPA導入を成功させる方法

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

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

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

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

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

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門

ZIP ファイルを展開する

展開するには -x を使います。

ZIP
tar -x -f backup.zip
- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>tar -x -f backup.zip

展開先を指定する

-C で展開先のフォルダを指定できます。

展開先を指定して展開
tar -x -f backup.zip -C D:\Work\restore
フォルダが無ければ作成してから展開
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
- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>tar -t -f backup.zip
docs/
docs/readme.txt
docs/memo.txt
C:\users\user>
txt
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 は、対象のファイルやフォルダより前に書きます。

C:\Users\user\Documents
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.gz
tar -a -c -f backup.tar.gz docs
tar.gz
tar -x -f backup.tar.gz

展開時は形式が自動で判別されるため、-z を付けなくても展開できます。

日付付きのバックアップを作成する

で紹介している日付の取得方法と組み合わせると、日付入りのファイル名でバックアップを作成できます。

backup.bat
@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 を呼び出すこともできますが、起動に時間がかかり、記述も長くなります。

項目TARCompress-Archive
実行場所コマンドプロンプト・PowerShellPowerShell
対応形式zip、tar、tar.gz などzip のみ
記述の長さ短い長め

シンプルな圧縮・展開が目的であれば、コマンドプロンプトから直接実行できる TAR が手軽です。

古い Windows では使えない

TAR コマンドは Windows 10 バージョン 1803(2018 年 4 月)以降に搭載されています。それより古い環境では、'tar' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と表示されます。

TAR が使えるかどうかは、次のコマンドで確認できます。

tar --version
- □ ×
コマンド プロンプトのアイコン
コマンド プロンプト
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>tar --version
bsdtar 3.7.7 - libarchive 3.7.7 zlib/1.3.1 liblzma/5.4.3 bz2lib/1.0.8
C:\users\user>

バージョン番号が表示されれば利用できます(表示される番号は環境によって異なります)。

まとめ

操作コマンド
フォルダを 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 フォルダ

関連記事

練習問題

練習問題

docs フォルダを backup.zip という ZIP ファイルに圧縮するコマンドはどれですか?

回答がサーバーに送信されることはありません
練習問題

tar -x -f backup.zip -C D:\Work\restore を実行したとき、D:\Work\restore が存在しない場合はどうなりますか?

回答がサーバーに送信されることはありません
#コマンドプロンプト #TAR #ZIP #圧縮 #展開 #コマンド