ファイルに定義されたglobを含むようにファイルのリストを展開します。

ファイルに定義されたglobを含むようにファイルのリストを展開します。

バッシュを使っています。filelistファイルリストを含むというファイルがあるとします。

stuff/**/*.csv     # to keep it simple (without loops), assume just one entry
#*.txt
#foo.md
#bar.bin

私はこれについて拡張したいと思います:

ls $(cat filelist)

私は得る:

ls: 'stuff/**/*.csv' にアクセスできません: そのファイルまたはディレクトリがありません

私が望むのは、これを処理のためにメインアプリケーションに転送できるファイルのリストに拡張することです。どうすればいいですか?

答え1

私の考えでは、再帰的なワイルドカードを使いたいと思います**。そうですか?ただし、この機能はBashでデフォルトで有効になっておらず(およびshopt -s globstar同様)で有効にする必要があります。以下を使用して値を確認することもできます。dotglobextglobshopt globstar

(またはコメントの提案shopt |grep globに答えてください。.と.の違いを参照してください。)set -o |grep globshoptset -o

関連情報