tarでアーカイブを作成する際、ディレクトリを指定してその配下全てをアーカイブ化することが多いだろう。
その中で、特定のサブディレクトリのみ除外してアーカイブを作成する場合は、「–exclude」オプションもしくは「-X」オプションを付与すると良いだろう。
1.「–exclude」オプション
コマンドラインで直接PATHを指定する場合は、「–exclude」オプションを付与する。
tar cvf --exclude 除外ディレクトリのPATH アーカイブ対象ディレクトリ
[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」を別途記述して指定する必要がある。
[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/
2.「-X」オプション
「-X」オプションを使用すると、ファイルに記述されているPATHを除外してアーカイブファイルを作成することが出来る。
tar cvf -X 除外ディレクトリのPATHを書いたファイル アーカイブ対象ディレクトリ
[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/
