以下のようにtarでアーカイブを作るときに特定のファイル(ディレクトリ)を対象外にする方法を記します。
tar czvf アーカイブファイル名 対象ディレクトリ等
manコマンドでtarを見ると以下、2つのオプションがあります。
man tar からの抜粋
--exclude FILE ファイルFILEを除外する
-X, --exclude-from FILE FILEに記載されているファイルを除外する
tarコマンドの--excludeオプションを利用すれば、特定のディレクトリを対象外にすることができます。
以下のディレクトリとファイル構成で--excludeオプションを試してみます。
$ find linux linux linux/ubuntu linux/ubuntu/ubuntu.txt linux/debian linux/debian/debian.txt linux/centos linux/centos/centos.txt
tar czvf linux.tar.gz linux --exclude linux/centos実行結果を以下に記します。
$ tar czvf linux.tar.gz linux --exclude linux/centos linux/ linux/ubuntu/ linux/ubuntu/ubuntu.txt linux/debian/ linux/debian/debian.txt
$ tar czvf linux.tar.gz linux --exclude linux/centos --exclude linux/ubuntu linux/ linux/debian/ linux/debian/debian.txt
$ find linux linux linux/ubuntu linux/ubuntu/ubuntu.txt linux/ubuntu/ubuntu.dat linux/debian linux/debian/debian.txt linux/debian/debian.dat linux/centos linux/centos/centos.dat linux/centos/centos.txt拡張子.datを除外するにはいかのようにします。
tar czvf linux.tar.gz linux --exclude linux/*.dat実行結果を以下に記します。
$ tar czvf linux.tar.gz linux --exclude linux/*.dat linux/ linux/ubuntu/ linux/ubuntu/ubuntu.txt linux/debian/ linux/debian/debian.txt linux/centos/ linux/centos/centos.txt
tarコマンドの--exclude-from FILEオプションを利用すれば、FILEに記述したファイルを対象外にすることができます。
以下のディレクトリとファイル構成で--exclude-from FILEを試してみます。
$ find linux linux linux/ubuntu linux/ubuntu/ubuntu.txt linux/ubuntu/ubuntu.dat linux/debian linux/debian/debian.txt linux/debian/debian.dat linux/centos linux/centos/centos.dat linux/centos/centos.txt
$ cat tar-exclude linux/ubuntu以下、実行結果です。
$ tar czvf linux.tar.gz linux --exclude-from tar-exclude linux/ linux/debian/ linux/debian/debian.txt linux/debian/debian.dat linux/centos/ linux/centos/centos.dat linux/centos/centos.txt
$ cat tar-exclude linux/ubuntu linux/*.txt以下、実行結果です。
$ tar czvf linux.tar.gz linux --exclude-from tar-exclude linux/ linux/debian/ linux/debian/debian.dat linux/centos/ linux/centos/centos.dat
尚、上記 man tar の抜粋に記されている通り、--exclude-from は -X と記述しても同様の動作となります。