【tarコマンド】特定のディレクトリを除外して圧縮するには?

Linux

tarコマンドで圧縮するときに特定のディレクトリを除外する方法を2通り紹介します。

スポンサーリンク

特定のディレクトリをアーカイブから除外するには?

特定のディレクトリを除外したいときは2通りの方法があります。

1つ目は–excludeオプションを使った方法です。excludeオプションに正規表現でパターンを指定し、マッチしたディレクトリやファイルを除外することができます除外したいフォルダやファイルの名前に法則がある場合はこちらが便利でしょう。

--exclude="*.log"

ただしこの方法は思ったように動かないことも多く、除外したいディレクトリが増えてくると大変になります。

もう一つは –exclude-caches-under オプションを使う方法です。

あらかじめ除外したいディレクトリに CACHEDIR.TAG という名前のファイルを作成し、

Signature: 8a477f597d28d172789f06886806bc55

という内容を記載しておきます。

そして、tarコマンド実行時に–exclude-caches-underを指定すると、CACHEDIR.TAGファイルがあるディレクトリとそれ以下を除外できます。

echo "Signature: 8a477f597d28d172789f06886806bc55">/home/user/.config/CACHEDIR.TAG
echo "Signature: 8a477f597d28d172789f06886806bc55">/home/user/.cache/CACHEDIR.TAG
echo "Signature: 8a477f597d28d172789f06886806bc55">/home/user/.npm/CACHEDIR.TAG
echo "Signature: 8a477f597d28d172789f06886806bc55">/home/user/.local/CACHEDIR.TAG
echo "Signature: 8a477f597d28d172789f06886806bc55">/home/user01/Maildir/CACHEDIR.TAG
echo "Signature: 8a477f597d28d172789f06886806bc55">/home/user/Maildir/CACHEDIR.TAG
echo "Signature: 8a477f597d28d172789f06886806bc55">/home/user02/Maildir/CACHEDIR.TAG

–exclude-caches-allとすると、CACHEDIR.TAGファイルがあるディレクトリのみ除外し、それ以下のディレクトリは除外しないようにしたり、いろいろとオプションが用意されています。詳しく知りたい方はmanを参照してみることをおすすめします。

コメント

タイトルとURLをコピーしました