Top>Linux>コマンド>tar |
コマンド |
tar |
説明 |
Linuxユーザには必須のコマンド。アーカイブの作成と圧縮・伸長をおこなう。 また、テープデバイス等への書きこみも可能となっている。 オプションが多く多様な使用形態が可能となっているが、ここではポピュラーなものを掲載する。 |
書式 |
tar [オプション] <ディレクトリ・ファイル> |
オプション(操作モード) |
-A:アーカイブへtarファイルを追加する。 -c:新しいアーカイブを作成する。 -d:アーカイブとファイル・システムの差分ととる。 --delete:アーカイブファイルから指定ファイルを削除する。(テープデバイス上のアーカイブは除く) -r:アーカイブの最後にファイルを追加する。 -t:アーカイブの内容の一覧を表示する。 --test-label:アーカイブのボリュームラベルのテストを行う。 -u:アーカイブファイルの同名ファイルより新しいものだけを追加する。 -x:アーカイブからファイルを取り出す。 |
オプション(共通) |
-f:指定したアーカイブ・ファイル・デバイスを使用する。 -j:bzip2を経由してアーカイブをフィルタする。 -v:処理対象のファイルの一覧を詳しく表示する。 -z:gzipを経由してアーカイブをフィルタする。 ※他多数 |
留意事項 |
1.アーカイブ対象に/がつく場合(/homeなど)は/が除かれてアーカイブされる。アーカイブから特定ファイルを削除する場合(オプション --delete)も
/を除いた形で指定する必要がある。またアーカイブ後に検証を行う場合(オプション -w)、ディレクトリ・ファイルの先頭に/がつく場合は/がのぞかれた
形でアーカイブされるが比較の際にも/が除かれたものを比較しようとするのでカレントディレクトリが/となっていない場合はエラーとなるので
注意が必要である。変更状態をチェックする場合(オプション -d)も同様の考慮が必要となる。 なお先頭の/を取り除かないオプション(-P)もある。 2.アーカイブファイルが圧縮されている場合に、アーカイブファイルに新しいファイルを追加したり、またアーカイブファイルから特定ディレクトリ・ファイルを 削除しようとする場合は直接はできないので、いったん伸長しtarファイルにしてからオペレーションする必要がある。 3.-hオプションを指定しない場合はシンボリックリンクのみをアーカイブする。-hオプションを指定するとリンク先までアーカイブする。 |
使用方法1 - gzipで圧縮されたアーカイブファイルを展開する。 |
tar zxvf <アーカイブファイル名.tar.gz> (例) tar zxvf backup.tar.gz backup.tar.gzファイルを展開する。 |
使用方法2 - bzip2で圧縮されたアーカイブファイルを展開する。 |
tar jxvf <アーカイブファイル名.tar.bz2> (例) tar jxvf backup.tar.bz2 backup.tar.gz2ファイルを展開する。 |
使用方法3 - アーカイブファイルを展開する(圧縮なし)。 |
tar xvf <アーカイブファイル名.tar> (例) tar xvf backup.tar backup.tar ファイルを展開する。 |
使用方法4 - アーカイブファイルから特定のファイル(ディレクトリ)を取り出す。 |
tar xvf <アーカイブファイル名.tar> <展開対象ファイル(ディレクトリ)> (例) tar xvf backup.tar tmp backup.tarファイルからtmpディレクトリを取り出す。 ※圧縮ファイルから取り出す場合はアーカイバーでフィルターするオプション(z,jなど)を追加する。 |
使用方法5 - アーカイブファイルを作成する(圧縮なし)。 |
tar cvf <アーカイブファイル名.tar> <ディレクトリ・ファイル> (例) tar cvf backup.tar /home /home ディレクトリを backup.tar ファイルにアーカイブする。 |
使用方法6 - gzipで圧縮されたアーカイブファイルを作成する。 |
tar cvfz <アーカイブファイル名.tar.gz> <ディレクトリ・ファイル> (例) tar cvfz backup.tar.gz /home /home ディレクトリを backup.tar.gz ファイルにアーカイブする。 |
使用方法7 - bzip2で圧縮されたアーカイブファイルを作成する。 |
tar cvfj <アーカイブファイル名.tar.bz2> <ディレクトリ・ファイル> (例) tar cvfj backup.tar.bz2 /home /home ディレクトリを backup.tar.bz2 ファイルにアーカイブする。 |
使用方法8 - アーカイブファイルの内容を一覧表示する。 |
tar tf <アーカイブファイル名> (例) tar tf backup.tar tar tf backup.tar.gz tar tf backup.tar.bz2 backup.tar, backup.tar.gz, backup.tar.bz2 に含まれるディレクトリ・ファイルのリストを表示する。 ※圧縮されたファイルでも利用可能。 |
使用方法9 - アーカイブに含まれるファイルの変更状態をチェックする。 |
tar df <アーカイブファイル名> (例) tar df /work/backup.tar backup.tar ファイルに含まれるファイルの変更状態をチェックする。タイムスタンプを比較し変更があるもののみを表示する。 ※変更・削除された場合は警告が表示される。終了コードが1となる。 ※アーカイブに含まれないファイルはリストアップされない。 ※圧縮されたアーカイブファイルに対しても実行可能となっている。 ※先頭に/がつくディレクトリをアーカイブした場合は/が取り除かれるので注意が必要。 /homeをバックアップした場合はカレントディレクトリのhomeを検証しようとするので、カレントディレクトリを/にしてコマンドを実行する必要がある。 |
使用方法10 - tarファイルの最後にファイルを追加する。 |
tar rf <アーカイブファイル名.tar> <追加ディレクトリ・ファイル> (例) tar rf backup.tar /home/test.txt backup.tarファイルにhome/test.txt ファイルを追加する。 ※アーカイブファイルが圧縮されている場合は直接は追加できない。 |
使用方法11 - tarファイルからディレクトリ・ファイルを削除する。 |
tar --delete -f <アーカイブファイル名.tar> <削除ディレクトリ・ファイル> (例) tar --delete -f backup.tar /home/test.txt backup.tarファイルからhome/test.txtファイルを削除する。 ※通常の利用においてはアーカイブファイルに格納時にファイルの先頭に/がある場合は取り除かれる。 したがって削除対象のディレクトリ・ファイルを先頭の/を除いて指定する。 ※アーカイブファイルが圧縮されている場合は直接は削除できない。 |
使用方法12 - 新しいファイルのみをアーカイブファイルの最後に追加する。 |
tar uf <アーカイブファイル名.tar> <追加対象ディレクトリ> (例) tar uf backup.tar /home backup.tar ファイルに/homeディレクトリで更新されたもののみを追加する。 ※/homeディレクトリがアーカイブファイルに存在しない場合はアーカイブファイルに追加される。 ※アーカイブファイルが圧縮されている場合は直接は追加できない。 |
使用方法13 - アーカイブファイル1にアーカイブファイル2を追加する。 |
tar Af <アーカイブファイル1.tar> <アーカイブファイル2.tar> (例) tar Af backup1.tar backup2.tar backup1.tarファイルにbackup2.tarファイルの内容を追加する。 ※backup2.tarファイルにbackup1.tarファイルと同じ内容が含まれる場合は展開した際にbackup2.tarの内容で上書きされる。 この場合以前のアーカイブ内容と追加したアーカイブ内容がファイル中に存在し容量効率はあまりよくない。 ※アーカイブファイルが圧縮されている場合は直接は追加できない。 |
使用方法14 - アーカイブ後にアーカイブしたファイルを検証する。 |
tar cvfW <アーカイブファイル名.tar> <ディレクトリ・ファイル> (例) tar cvfW /work/backup.tar home homeディレクトリをbackup.tarファイルにアーカイブし、アーカイブしたファイルを検証する。 ※圧縮オプションと同時には使用できない。 ※圧縮対象のディレクトリの先頭に/がつく場合はアーカイブ時に取り除かれるため検証時にエラーとなるので注意が必要。 |
使用方法15 - tarコマンドで差分バックアップを行う。 |
①フルバックアップにさきだち時刻ファイルを作成する。 # touch time_full ②フルバックアップを行う。 # tar cvfz backup_full.tar.gz /home ③差分バックアップの実行(time_fullより新しいファイルのみをアーカイブする。) # find /home -type f -newer time_full | xargs tar cvfz backup_diff.tar.gz ※以降の差分バックアップは③を実行する。 |
使用方法16 - tarコマンドで増分バックアップを行う。 |
①フルバックアップにさきだち時刻ファイルを作成する。 # touch time_inc ②フルバックアップを行う。 #tar cvfz backup_full.tar.gz /home ③前回のタイムスタンプファイルを退避する。 #mv time_inc time_inc_prev ④今回のタイムスタンプファイルを作成する。 #touch time_inc ⑤増分バックアップの実行(time_inc_prevより新しいものだけをアーカイブする。) #find /home -type f -newer time_inc_prev | xargs tar cvfz backup_inc_<日時>.tar.gz ※以降の増分バックアップは③~⑤を繰り返す。 |
最終更新日:2013/10/05 |
- Published By MINDKERNEL.COM - |