不要なファイルを除いて、多数のファイルを tar で圧縮する方法を知っています。
tar --exclude=./*.jpg -pcjvf all.tar.gz ./
ここでは、jpg 拡張子を除くすべてのファイルを tar します。
私はその逆をしたいのです。特定のファイルだけを tar する必要があります。グーグルで検索しても、例を見つけるのにあまり成功しませんでした。
tar コマンドに --include オプションはありますか?
答え1
オプションはありません--include
。パラメータとして含めたいすべてのファイルを に添付するだけですtar
。ワイルドカードで含めたい場合は、 を使用しますfind
。
tar -pcjvf specific.tar.gz $(find -name *.jpg)
答え2
何か見落としているのでしょうか? 次のようにしてみませんか:
tar -pcjvf pictures.tar.gz ./*.jpg
答え3
このようなもの:
tar -pcjvf images.tar.gz ./*.jpg ./*.jpeg ./*.png
答え4
私は 'find' の出力を tar にパイプすることでこれを実行します:
find /your/directory -type f -name '*.jpg' | tar --files-from=- -cvf meow.tar
「find」コマンドは/your/directoryに保存されているすべてのjpgを出力します。再帰的に、そして tar の魔法の --files-from オプションは、stdin を意味する '-' からファイルを読み取り、それらを tar します。rsync にも --files-from オプションがあるため、ファイル指定コマンドを 1 つだけ覚えておけばよいので、これは特に便利です。さらに、'find' は tar や rsync のファイル指定機能よりも強力です。