tarでアーカイブ作成時に特定のディレクトリ・ファイルを除外する
Pocket

tarでアーカイブを作成する際、ディレクトリを指定してその配下全てをアーカイブ化することが多いだろう。
その中で、特定のサブディレクトリのみ除外してアーカイブを作成する場合は、「–exclude」オプションもしくは「-X」オプションを付与すると良いだろう。

1.「–exclude」オプション

コマンドラインで直接PATHを指定する場合は、「–exclude」オプションを付与する。

tar cvf 作成するアーカイブファイルPATH --exclude 除外ディレクトリのPATH アーカイブ対象ディレクトリ

20151112_000003

[root@test-centos7 ~]# find /work8 -type d
/work8
/work8/work8-1
/work8/work8-1/8-1-2
/work8/work8-1/8-1-3
/work8/work8-1/8-1-4
/work8/work8-2
/work8/work8-2/8-2-4
/work8/work8-2/8-2-2
/work8/work8-3
/work8/work8-4
/work8/work8-4/8-4-2
/work8/work8-4/8-4-1
/work8/work8-4/8-4-7
/work8/work8-5
/work8/work8-6
[root@test-centos7 ~]# tar czvf /tmp/test8.tar.gz --exclude /work8/work8-1 /work8
tar: メンバ名から先頭の `/' を取り除きます
/work8/
/work8/work8-2/
/work8/work8-2/8-2-4/
/work8/work8-2/8-2-2/
/work8/work8-3/
/work8/work8-4/
/work8/work8-4/8-4-2/
/work8/work8-4/8-4-1/
/work8/work8-4/8-4-7/
/work8/work8-5/
/work8/work8-6/

 

なお、複数ディレクトリを除外する場合は「–exclude」を別途記述して指定する必要がある。

20151112_000004

[root@test-centos7 ~]# tar czvf /tmp/test8.tar.gz --exclude /work8/work8-1 --exclude /work8/work8-2 /work8
tar: メンバ名から先頭の `/' を取り除きます
/work8/
/work8/work8-3/
/work8/work8-4/
/work8/work8-4/8-4-2/
/work8/work8-4/8-4-1/
/work8/work8-4/8-4-7/
/work8/work8-5/
/work8/work8-6/
Sponsored Links

2.「-X」オプション

「-X」オプションを使用すると、ファイルに記述されているPATHを除外してアーカイブファイルを作成することが出来る。

tar cvf 作成するアーカイブファイルPATH -X 除外ディレクトリのPATHを書いたファイル アーカイブ対象ディレクトリ

20151112_000005

[root@test-centos7 ~]# cat /tmp/work8.list
/work8/work8-4
/work8/work8-5

[root@test-centos7 ~]# tar czvf /tmp/test8.tar.gz -X /tmp/work8.list /work8
tar: メンバ名から先頭の `/' を取り除きます
/work8/
/work8/work8-1/
/work8/work8-1/8-1-2/
/work8/work8-1/8-1-3/
/work8/work8-1/8-1-4/
/work8/work8-2/
/work8/work8-2/8-2-4/
/work8/work8-2/8-2-2/
/work8/work8-3/
/work8/work8-6/

 

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

This article has 1 comments

  1. Pingback: tarコマンド(GNU拡張版)で覚えておきたい使い方13個 | 俺的備忘録 〜なんかいろいろ〜

Leave a Comment

メールアドレスが公開されることはありません。