それも考慮してくださいstow。

それも考慮してくださいstow。

私の~/binフォルダには、任意のディレクトリレベルを持つ複数のサブフォルダが含まれています。

このフォルダには、zshの起動時に追加する必要がある実行可能ファイルのみが保存されています。短く効率的な方法で、そのフォルダとサブフォルダの下のすべてのファイルをどのようにpath再帰的に追加できますか?$path

答え1

mkdir -p ~/tmp/a/b/c/{d,e}
path+=(~/tmp/a ~/tmp/a/**/*(N/))
print -l $path

これにより、変数とディレクトリ~/tmp/aの両方に再帰的に追加する必要があります。PATH同じではない*(/)**リンクの問題これを行うとfind(1)

修飾子は、(隠されていない)ディレクトリがない場合、Nそれをエラーとして処理しません。

答え2

それも考慮してくださいstow

stowサブディレクトリにパッケージセットを作成できるツールです。コンテンツを一緒に保ちながらコンテンツを分離するのに役立ちます。ルートディレクトリ(たとえば~/bin)にリンクを作成してこれを実行し、ファイルを追加および削除するときにこれらのリンクを管理するのに役立ちます。

/usr/localさまざまなサブディレクトリ(etc、bin、lib...)のさまざまなファイルに接続されるため、よく使用されます。これにより更新する必要はありません$PATH

だから、

  • パッケージ1
    • ゴミ箱
      • 倉庫1
      • 倉庫2
  • パッケージ2
    • ゴミ箱
      • 倉庫3
      • 倉庫4

それからあなたは結局

  • bin1 -> パッケージ 1/bin/bin1
  • bin2 -> パッケージ 1/bin/bin2
  • bin3 -> パッケージ 2/bin/bin3
  • bin4 -> パッケージ 2/bin/bin4
  • パッケージ1
    • ゴミ箱
      • 倉庫1
      • 倉庫2
  • パッケージ2
    • ゴミ箱
      • 倉庫3
      • 倉庫4

関連情報