晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
| DIR:/proc/thread-self/root/proc/self/root/usr/lib/rpm/ |
| Current File : //proc/thread-self/root/proc/self/root/usr/lib/rpm/brp-boot-efi-times |
#!/usr/bin/bash -eu
# If using normal root, avoid changing anything.
if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD_ROOT" = "/" ]; then
exit 0
fi
if [[ ! -d "$RPM_BUILD_ROOT//boot/efi" ]] ; then
exit 0
fi
update() {
local path="$1"
local ctime=$(stat -c "%Z" "${path}")
# we always want to touch it once...
if [[ $((${ctime} % 2)) -eq 0 ]] ; then
let ++ctime
fi
while [[ $((${ctime} % 2)) -eq 1 ]] ; do
let ++ctime
touch -h -c -d "@${ctime}" "${path}"
ctime=$(stat -c "%Z" "${path}")
done
}
declare -a dirs
dirs=() || :
cd "$RPM_BUILD_ROOT"
while IFS= read -r -d $'\0' f; do
if [[ -d "${f}" ]] ; then
dirs[${#dirs[@]}]="${f}"
else
update "${f}"
fi
done < <(find ./boot/efi/ -print0)
# sort the directory list lexicographically, longest-first, so a parent dir's
# updated mtime won't be clobbered by the child dir being updated, if some day
# someone actually makes that matter.
#
# I don't think we actually have to do this on linux, but
# $RPM_BUILD_ROOT//boot/efi/ isn't going to have but so many files on
# it.
let i=0 || :
let j=1
while [[ ${i} -lt ${#dirs[@]} ]] && [[ ${j} -lt ${#dirs[@]} ]] ; do
if [[ "${dirs[$i]}" < "${dirs[$j]}" ]] ; then
tmp="${dirs[$i]}"
dirs[$i]="${dirs[$j]}"
dirs[$j]="${tmp}"
else
let ++j
fi
if [[ ${j} -ge ${#dirs[@]} ]] ; then
let ++i
let ++j
fi
done
# and now just process them just like files.
if [[ ${#dirs[@]} -gt 0 ]] ; then
for dir in "${dirs[@]}" ; do
update "${dir}"
done
fi
|