タールが多い(.tar.bz2)には複数のファイル形式のファイルが含まれています。再帰ディレクトリ。 1種類のファイルだけを抽出したいです(たとえば、。 txtファイル)すべてのディレクトリから。どうすればいいですか?私はこのコマンドを持っていますすべてのファイルを抽出各ディレクトリで:
for file in *.tar.bz2; do tar -jxf "${file}"; done
ただ抽出したいのですが「.TXT」完全ではなくファイル。
答え1
GNU tarのマンページを引用すると、次のようになります。
したがって、名前が「.c」で終わるファイルを抽出するには、次のようにします。
$ tar -xf foo.tar -v --wildcards '*.c'
したがって、お客様の場合は、以下を選択します。
for file in *.tar.bz2; do tar -jxf "${file}" --wildcards '*.txt'; done
答え2
bsdtarを使用すると、globを指定できます。
for file in *.tar.bz2; do tar -jxf "$file" '*.txt'; done
gnutarを使用するには、--wildcardsフラグを追加する必要があります。
for file in *.tar.bz2; do tar -jxf "$file" --wildcards '*.txt'; done