バッチスクリプトを書きたいです。
- ファイル名を探す
- ファイル名は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