내 ~/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
- 쓰레기통