그것도 고려해보세요 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

관련 정보