일부 파일을 특정 디렉터리(이 경우 복제된 저장소에서 호스트 OS(이 경우 macos)의 테마 폴더로 이동)에 심볼릭 링크하는 데 도움이 되는 작은 스크립트를 만들었습니다. 어쨌든 문제는 Blender가 관리할 새 폴더를 생성한다는 것입니다. 각 버전 자체의 기본 설정
3.1
└ Config
└ Scripts
└ Startup
3.2
└ Config
└ Scripts
└ Startup
. 등.
"*" 와일드카드를 사용하여 이를 나타낼 수 있다는 것을 알았지만 ln 명령에 대해 가장 높은 숫자 값을 가진 폴더를 선택하는 방법이 필요합니다.
도움이 된다면 지금까지 제가 생각해낸 명령은 다음과 같습니다.
ln -sf /'path to theme file' '.../'directory with highest numerical value'/.../interface-theme')
답변1
그리고 zsh
:
() {
ln -sf -- /'path to theme file' $argv[-1]/interface-theme
} '.../'*'/...(/n)
여기서 n
glob 한정자는 glob을 활성화하고 numericglobsort
(다음과 사이 대신 순서 지정 3.10
) glob을 다음 유형의 파일로 제한합니다.3.9
3.1
3.2
/
목차(교체는 -/
디렉토리에 대한 심볼릭 링크도 고려합니다. *
심볼릭 링크 자체를 따릅니다.) 순서가 지정된 디렉터리 목록을 익명 함수에 전달합니다. 여기서 $argv[-1]
명령( )의 마지막 인수를 사용합니다 ln
.
또는 e
glob 한정자를 사용하여 링크 이름을 추가하고 [-1]
마지막 glob 확장을 선택합니다.
ln -sf -- /'path to theme file' '.../'*'/...(/n[-1]e[REPLY+=/interface-theme])
bash
(GNU 쉘) 4.4 이상 및 GNU 유틸리티를 사용하면 다음을 수행할 수 있습니다.
print0() {
(( $# == 0 )) || printf '%s\0' "$@"
}
readarray -td '' dirs < <(
shopt -s nullglob
print0 '.../'*'/...'/ |
sort -zrV
) &&
(( ${#dirs[@]} )) &&
ln -sf -- /'path to theme file' "${dirs[1]}"interface-theme
-V
(일명)은 glob 한정자 와 --version-sort
유사한 정렬을 수행합니다 . 's (디렉토리 선택 및 해당 디렉토리에 대한 심볼릭 링크 선택) 와 유사 하지만 가 추가됩니다.zsh
n
*/
zsh
*(-/)
/
또는 zsh
사용 가능하다고 가정하면 다음과 같이 할 수 있습니다.
zsh -c '
ln -sf -- /"path to theme file" ".../"*"/...(/n[-1]e[REPLY+=/interface-theme])'