web-dev-qa-db-ja.com

`ls`一致パターンで1つのディレクトリを除外する

私はls.png内部ファイル(再帰性は不要ですが、非常に役立ちます)。 1つのディレクトリ、つまり.

ls */*.png

正常に動作します。

ls (^one)*/*.png

stdoutを返しません。どうすれば達成できますか?

私は盲目でespeakにパイプしているので、今のところstdoutしか聞こえません。

13
Tomas Jankus

zsh では、_ setopt extended_glob~/.zshrcに入れます。次に、 ワイルドカードパターン^oneを使用して、oneというディレクトリを除外できます。

ls ^one/*.png

サブディレクトリに再帰する場合は、**/を使用して再帰的グロビングを行います。トップレベルのoneというディレクトリとトップレベルのディレクトリを除外するには:

ls ^one/**/*.png

oneというサブディレクトリ内のファイルを除外し、そのサブディレクトリ内のファイルを除外するには:

ls **/^one/*.png

oneというサブディレクトリの下のファイルを任意のレベルで除外するには、否定の前後に#演算子を使用して繰り返しパターンを使用します。

ls (^one/)#/*.png