« IceClean 3.4.3 | メイン | Not using downloaded repomd.xml »

2010年9月30日

tar コマンド実行時のディレクトリの除外方法

tarコマンドでアーカイブを作成する際、特定のディレクトリを除外したい場合アーカイブ作成時に特定のディレクトリ/ファイルを除外する「X」というオプションがある。

# ls -la opt
合計 10
drwxr-xr-x 5 root root 512 3月 18日 10:16 .
drwxr-xr-x 7 root root 512 3月 18日 10:33 ..
drwxr-xr-x 2 root root 512 3月 18日 10:39 dir1
drwxr-xr-x 2 root root 512 3月 18日 10:39 dir2
drwxr-xr-x 2 root root 512 3月 18日 10:39 dir3


例えば、上記のような環境で、dir3 というディレクトリを除外したい場合には以下のように除外用のリストを作成し、実行する。

# cat ex.lst
opt/dir3

# tar cvfX out.tar ex.lst opt
a opt/ 0K
a opt/dir1/ 0K
a opt/dir2/ 0K
a opt/dir3 は除外されました。

# tar tf out.tar
opt/
opt/dir1/
opt/dir2/

mantar抜粋
=============================================================
X
 除外。機能c、x、または、tを使用した場合に、tarfileから除外されるファイル(あるいはディレクトリ)の相対パス名のリストを収めたファイルとして、exclude-file引数を使用します。include-fileの行末に不要な空白を置かないように注意してください。また、各行頭にも不要な空白を置かないように注意してください。除外するファイルの最初の文字列に対する一致には、改行で分かれている行全体が使用されます。
 exclude-file内の行は厳密に照合されます。したがって、tarが相対パス名をバックアップしている場合、「/var」のようなエントリを指定しても、/varディレクトリは除外されません。このような状況では、「./var」と指定する必要があります。tarコマンドは、exclude-file内にあるシェルのメタキャラクタを展開しません。したがって、「*.o」のようなエントリを指定しても、名前に接尾辞「.o」が付いたすべてのファイルを除外するような効果はありません。複雑なファイルのリストを除外する場合は、find(1)コマンドを適切な条件で使用するなどして、exclude-fileを生成する必要があります。
 引数1つにつき1つのexclude-fileで、複数のX引数を使用することができます。この場合、組み込まれたファイルが存在する場合には(-Iinclude-fileオペランドを参照)、除外されたファイルは組み込まれたファイルよりも優先されます。したがって、あるファイルがexclude-fileとinclude-fileの両方のファイル(またはコマンド行上)で指定されていれば、そのファイルは除外されます。
=============================================================

投稿者 AJ : 2010年9月30日 11:46

トラックバック

このエントリーのトラックバックURL:
http://www.factory-aj.com/cgi/mtctrl/mt-tb.cgi/292

 
Powered by Movable Type 4.27-ja | RSS1.0 | RSS2.0 | ATOM