심볼릭 링크 뒤의 모든 디렉터리 이름을 가져옵니다.

심볼릭 링크 뒤의 모든 디렉터리 이름을 가져옵니다.

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까지의 날짜를 얻으려면 어떻게 해야 할까요? 이들 모두는 서로 다른 디렉토리입니다.

연산:

  1. 심볼릭 링크 이후의 날짜를 가져옵니다.

  2. 이전 단계에서 얻은 날짜를 반복합니다.

  3. 가져온 각 날짜에 대한 논리 실행

예:

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

관련 정보