Linux tar コマンド オプション

Linux tar コマンド オプション

不要なファイルを除いて、多数のファイルを 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 のファイル指定機能よりも強力です。

関連情報