我有以下目录:
1/
2/
3/
4/
5/
6/
7/
...
我想遍历这个目录列表并将它们保存到一个按修改日期排序的数组中
喜欢
array[
3, #oldest timestamp
4,
5,
8,
1, #newest timestamp
]
之后我想访问数组值,如:array[0]
bash 怎么可能做到这一点?我试过几个这样的事情:
ARRAY=()
for d in */; do
ARRAY+=($[$(date +%s)-$(stat --printf "%Y" "$d")])
done
但似乎没有任何效果:(
如果有人能提供帮助那就太好了:)
最佳答案
你可以做到
cd /path/to/your/dir
string="$(find . -maxdepth 1 -type d -printf '%T@ %p\n' | sort -k 1nr | sed 's/^[^ ]* //' | tr -d './' )"
IFS=$'\n' read -rd '' -a array <<< "$string"
然后像这样访问数组的元素:
echo "${array[1]}"
关于arrays - 将目录时间戳插入 bash 中按日期排序的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40177733/