web-dev-qa-db-ja.com

特定のファイル名に基づいてディレクトリ内のファイルのみをどのようにtarするのですか?

Tarボールを作成し、特定のファイル名で始まるディレクトリ内のファイルのみを含めたいです。たとえば、apples-x.x.xとoranges-x.x.xがあり、 "Apple"で始まるファイルのみをtarする必要があります。これどうやってするの?

ありがとう!

5
hsatterwhite

うーん、見落としているかもしれませんがどうでしょう

tar cf /path/tarfile appl*

./appl*とも呼ばれるディレクトリがない限り、その場合、それらはその内容とともにトロールされます。後者が関係する場合は、--no-recursionで停止できます。

7
MadHatter

多分そのようなもの:

find / -type f -name "Apple*" -exec tar -rf archive.tar '{}' \;

Apple *というパターンのディレクトリをアーカイブしないので、tar cf /path/tarfile appl*よりも良い

8
B14D3

どうですか

find / -type f -name "Apple*" -exec tar -cf archive.tar '{}' \+

?このようにして、すべてのファイル名を単一のショットでtarに渡します(findのマニュアルページの-execコマンド{} +を参照)。

0
al0