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