長いパスの各サブパスで指定されたコマンドを実行します。

長いパスの各サブパスで指定されたコマンドを実行します。

次のような長い道があるとしましょう。

/a/b/c/d/e/f

コマンドを実行したい。ただパスの各サブパスで:

たとえば、私のコマンドがあれば、cmdこれを行うことができる1行を探しています(おそらく1行ループを使用しています)。

cmd /a
cmd /a/b
cmd /a/b/c
cmd /a/b/c/d
cmd /a/b/c/d/e
cmd /a/b/c/d/e/f

一つこれが必要な理由の1つ(他のタスクにも必要です)は、Unixチームの誰かがcdこのタスクを段階的に実行できるようにしたい/a/b/c/d/e/fからです。chmod g+x回避策があることを確認してください。)避けたいchmod -R g+x /a

私は主にzshで作業していますが、特定のzsh機能を利用できるものがあるかどうか疑問に思います。

ベストアンサー1

それはまるで

path=/a/b/c/d/e/f
while test "$path" != "/"; do
    chmod g+x "$path"
    path=$(dirname "$path")
done

おすすめ記事