すべてのサブフォルダでコマンドを実行する

すべてのサブフォルダでコマンドを実行する

一連のサブフォルダ(たとえばfrom〜a)があり、z各サブフォルダに対してコマンド(rm *.pdfまたは)を実行したい場合はどうすればよいですかls *.pdf。 「手動」メソッドはcd a、、、、、、...これは複雑すぎるように見えるのでrm *.pdf、より簡単な方法があると確信していますls *.pdfcd ..cd b

ベストアンサー1

これを試してください(使用支柱の拡張そしてボール):

rm -f {a..z}/*.pdf

または

rm -f [a-z]/*.pdf

シェルが欠落している場合支柱の拡張特徴。

それとは対照的に、[a-z]{a..z}ksh93でもサポートされています)それ以外は中括弧拡張であり、globファイルが存在するかどうかを(以前)拡張します。 a、b...が存在するか存在しないかに関係なく...globsのように。rm -f a/*.pdf b/*.pdfまた、これは範囲がロケールによって異なる場合があります(たとえば...を[a-z]含めることができます)とは異なり、バイト範囲でのみ機能します(アルファベットと数字の範囲に対してのみ安定して動作します)。é, ś{a..z}ASCII

(説明してくれたStephen Chazerasに感謝します)

おすすめ記事