获取符号链接后的所有目录名

获取符号链接后的所有目录名

我有一个目录列表,其中有符号链接 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. 获取符号链接 Main 之后的日期

  2. 循环遍历上一步中获取的日期

  3. 为获取的每个日期执行逻辑

例子 :

适用于 2021-07-15 至 2021-08-01 之间的所有日期

       Execute some code

在此输入图像描述

答案1

Main要在 shell中打印符号链接链接的目录中列出的目录名称zsh,您可以执行以下操作:

print -rC1 -- Main/*(ND/:t)

或者,如果您的意思是所有这些 YYYY-MM-DD 目录和Main符号链接都在同一目录中,并且您想要列出(按时间顺序,与词汇顺序相同)指向的目录之后的目录Main

zmodload zsh/stat || exit

stat -A min +link Main || exit

for date in ????-??-??(N/e['[[ $REPLY > $min ]]']); do
  some-logic with $date
done

shellbash没有stat内置或 glob 限定符,但它也有 ksh[[ 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

相关内容