Symlink Main이 포함된 디렉토리 목록이 있습니다. 이제 심볼릭 링크 뒤에 있는 모든 디렉토리 이름을 어떻게 추출할 수 있습니까?
전임자:
Main -> 2021-07-06
2021-07-15
2021-07-25
2021-07-31
2021-08-01
나중에 번호를 어떻게 알 수 있나요?기본끝까지(2021-08-01)까지 2021-07-15부터 2021-08-01까지의 날짜를 얻으려면 어떻게 해야 할까요? 이들 모두는 서로 다른 디렉토리입니다.
연산:
심볼릭 링크 이후의 날짜를 가져옵니다.
이전 단계에서 얻은 날짜를 반복합니다.
가져온 각 날짜에 대한 논리 실행
예:
2021년 7월 15일부터 2021년 8월 1일 사이의 모든 날짜에 적용됩니다.
Execute some code
답변1
Main
쉘에서 심볼릭 링크로 연결된 디렉토리에 나열된 디렉토리 이름을 인쇄하려면 zsh
다음을 수행할 수 있습니다.
print -rC1 -- Main/*(ND/:t)
Main
또는 이러한 모든 YYYY-MM-DD 디렉토리와 심볼릭 링크가 동일한 디렉토리에 있고 다음을 가리키는 디렉토리 뒤에 있는 디렉토리를 (연대순으로, 어휘순으로 동일하게) 나열하려는 경우 Main
:
zmodload zsh/stat || exit
stat -A min +link Main || exit
for date in ????-??-??(N/e['[[ $REPLY > $min ]]']); do
some-logic with $date
done
쉘에는 내장 또는 glob 한정자가 bash
없지만 ksh 연산자도 있으며 시스템에 명령이 있는 경우 다음을 수행할 수 있습니다.stat
[[ foo > bar ]]
readlink
min=$(readlink -v Main) || exit
for date in ????-??-??; do
[ -d "$date" ] || continue
[ -L "$date" ] && continue
[[ "$date" > "$min" ]] || continue
some-logic with "$date"
done