簡単な質問がありますが、答えを見つけることも解くこともできません。 tarアーカイブを作成したいのですが、正規表現を使用していくつかのファイルをアーカイブから除外したいと考えています。
除外するファイルの例は次のとおりです:68x640X480.jpg
私は運なしでこれを試しました:
tar cvf test.tar --exclude=[0-9]+x[0-9X]+\.jpg /data/foto
誰か助けてもらえますか?
find
やegrep
などの追加ツールを使用できます。
find directory/ -type f -print | egrep -v '[0-9]+x[0-9X]+\.jpg' | tar cvfz directory.tar.gz -T -
上記の方法の欠点は、すべての可能なファイル名に対して機能しないことです。もう1つの機会は、tar
の組み込みの除外機能を使用することです。
tar -czvf directory.tar.gz --exclude='*x*X*.jpg' directory
残念ながら、2番目の方法は正規表現では機能せず、ワイルドカードでのみ機能します。
多分あなたはcpioを試すべきです
http://cybertiggyr.com/cpio-howto
ファイルリストから読み込んでアーカイブします。以下のようにsedを使用してファイルリストを生成できます。
ls |sed '/[0-9]*x[0-9]*X.*/d' >/tmp/files
その後、それをcpioへの入力として使用できます。