#navi(../)
* tarでアーカイブを作るときに特定のファイルを対象外にする方法 [#z09d4696]
以下のようにtarでアーカイブを作るときに特定のファイル(ディレクトリ)を対象外にする方法を記します。
 tar czvf アーカイブファイル名 対象ディレクトリ等

#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)

* 対象外(除外)するためのtarのオプション [#y62a6881]
manコマンドでtarを見ると以下、2つのオプションがあります。~
man tar からの抜粋
       --exclude FILE
              ファイルFILEを除外する

       -X, --exclude-from FILE
              FILEに記載されているファイルを除外する

* --exclude オプションを利用すれば特定のファイル(ディレクトリ)を除外できる [#fde7b7b8]
tarコマンドの--excludeオプションを利用すれば、特定のディレクトリを対象外にすることができます。~
以下のディレクトリとファイル構成で--excludeオプションを試してみます。
 $ find linux
 linux
 linux/ubuntu
 linux/ubuntu/ubuntu.txt
 linux/debian
 linux/debian/debian.txt
 linux/centos
 linux/centos/centos.txt

- centosを除外する
以下のようにするとcentosディレクトリを含むcentos以下のファイルが除外されます。
 tar czvf linux.tar.gz linux --exclude linux/centos
実行結果を以下に記します。~
centosディレクトリが除外されています。
 $ tar czvf linux.tar.gz linux --exclude linux/centos
 linux/
 linux/ubuntu/
 linux/ubuntu/ubuntu.txt
 linux/debian/
 linux/debian/debian.txt

- centos, ubuntu を除外する
以下の例はcentos, ubuntuを除外した例です。
 $ tar czvf linux.tar.gz linux --exclude linux/centos --exclude linux/ubuntu
 linux/
 linux/debian/
 linux/debian/debian.txt

- 特定拡張子のファイルを除外する
この例は、各ディレクトリに拡張子.txtと.datが存在しています。~
拡張子.datのを除外してtarアーカイブを作成してみます。
 $ 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
実行結果を以下に記します。~
拡張子.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

* --exclude-from FILE でFILEに指定したファイルを除外する [#j5fd5a94]
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

- ubuntuディレクトリを含むファイルを除外する
除外ファイル(tar-excludde)は以下のように設定しました。
 $ 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
- ubuntuディレクトリを含むファイルを除外し拡張子.txtを除外する
除外ファイル(tar-excludde)は以下のように設定しました。
 $ 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 と記述しても同様の動作となります。


#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS