我有一个像这样的bash脚本:
for d in /home/test/*
do
echo $d
done
输出这个:
/home/test/newer dir
/home/test/oldest dir
我想按创建时间订购文件夹,以便“最旧的dir”目录首先出现在列表中。我尝试过ls和树变种无济于事。
例如,
for d in `ls -d -c -1 $PWD/*`
返回:
/home/test/oldest
dir
/home/test/newer
dir
非常接近,但它不尊重目录名称中的空格。我的问题是,我如何拥有最老的dir并支持空白?
答案 0 :(得分:1)
ls -d -c $PWD/* | while read line
do echo "$line"
done
答案 1 :(得分:0)
另一种技术,一种施瓦茨变换:
stat -c $'%Z\t%n' /home/test/* | sort -n | cut -f2- |
while IFS= read -r filename; do
# ...
此解决方案很脆弱,文件名包含换行符。