45 lines
677 B
Bash
Executable File
45 lines
677 B
Bash
Executable File
#!/bin/zsh
|
|
|
|
zmodload zsh/stat
|
|
|
|
function ctime {
|
|
zstat -F '%s' +ctime -- "$1"
|
|
}
|
|
|
|
function mdate {
|
|
local dfmt="$(grep -m 1 -oP '(?<=^[dD]ate\:\ ).*' $1)"
|
|
date '+%s' -d "$dfmt"
|
|
}
|
|
|
|
while read LINE; do
|
|
fls=(${(s. .)LINE})
|
|
|
|
unset cts
|
|
typeset -A cts
|
|
for i in $fls; do
|
|
cts[$i]=$(ctime "$i")
|
|
done
|
|
|
|
unset mds
|
|
typeset -A mds
|
|
for i in $fls; do
|
|
mds[$i]=$(mdate "$i")
|
|
done
|
|
|
|
while [ "${#fls}" -gt 1 ]; do
|
|
TMS=()
|
|
mf=""
|
|
if [ "${#mds}" -gt 1 ]; then
|
|
TMS=(${(nO)${(v)mds}})
|
|
mf="${(k)mds[(r)${TMS[1]}]}"
|
|
unset "mds[${(b)mf}]"
|
|
else
|
|
TMS=(${(nO)${(v)cts}})
|
|
mf="${(k)cts[(r)${TMS[1]}]}"
|
|
unset "cts[${(b)mf}]"
|
|
fi
|
|
fls=(${fls:#$mf})
|
|
echo "$mf"
|
|
done
|
|
done
|