別のディレクトリのtarアーカイブでファイル名を検索する

別のディレクトリのtarアーカイブでファイル名を検索する

バッチスクリプトを書きたいです。

  • ファイル名を探す
  • ファイル名はtarアーカイブ内にあります。
  • tar アーカイブは別のディレクトリにあります。
  • ファイル名が指定されたパターンと一致します。

欲しい皮をむかないで、可能であれば変数にファイル名を保存

私のtarファイルはにあります./foo_tar。 tarアーカイブで始まり、その後に数字と下線(たとえば)が続くbar.tar.gzファイル名を取得したいと思います。baz*baz1234_

これまでのfindコマンドを知っていますが、tarファイルにアクセスしようとすると機能しません。私は次のようなものが欲しい:

filename_in_question=$(find ./foo_tar/bar.tar.gz -name 'baz*')

解決策はありますか?

ベストアンサー1

Tar自体はワイルドカードを使用できます。

tar tzvf ./foo_tar/bar.tar.gz --wildcards '*/baz*'

例えば。 :

$ filename_in_question=$(tar tvf test.tar --wildcards '*/received_10205861111464136.mp4')
$ echo $filename_in_question
-rwxr-xr-x ghp/ghp 1931930 2017-11-04 10:36 ./Marieanne/Messenger/received_10205861111464136.mp4
$ echo ${filename_in_question/*\//}
received_10205861111464136.mp4

おすすめ記事