私は1つを除いて内部にファイルがls
あるディレクトリを持っています.png
(特に便利ですが、再帰は必要ありません)。ディレクトリを除外します。
ls */*.png
うまくいきます。
ls (^one)*/*.png
標準出力を返しません。どのように実装できますか?
目を離してパイプを接続してespeak
今聞くことができるのは標準出力だけです。
ベストアンサー1
オプション1- 次の使用のみls
:
拡張bashワイルドカードを開く(shopt -s extglob
)、次のことができます。
ls !(one*)/*.png
オプション2- 結合ls
とgrep
:
ls
組み合わせることができます。grep -v
- 例えば
ls */*.png | grep -v "one/"
オプション3- (最高のIMO)しかし、以下をfind
使用しないでくださいls
:
すべてのサブディレクトリを再帰的に検索するには、次のコマンドを使用します。find
find . -type f -name "*.png" -not -path "*/one/*"
上記の単一のコード行はすべて、一致するパスを.png
フィルタリングしながらファイルを含むディレクトリを一覧表示しますone/
。オプション3のみがこの操作を繰り返し実行します。