linux - 在 bash 中订购一个循环

标签 linux bash for-loop

我有一个这样的 bash 脚本:

for d in /home/test/*
    do
    echo $d
done

输出这个:

/home/test/newer dir
/home/test/oldest dir

我想按创建时间对文件夹进行排序,以便“最旧的目录”目录出现在列表的第一位。我试过 ls 和 tree 变体都无济于事。

例如,

for d in `ls -d -c -1 $PWD/*`

返回:

/home/test/oldest
dir
/home/test/newer
dir

非常接近,但它不考虑目录名称中的空格。我的问题是,我如何将最旧的目录置于顶部并支持空白?

最佳答案

ls -d -c $PWD/* | while read line
  do echo "$line"
done

关于linux - 在 bash 中订购一个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16114643/

相关文章:

linux - URL 地址中的增量数

python - 错误 : no such file

bash - Go 和 MongoDB 连接不适用于紧急日志 "no reachable server"

python - 有没有办法每次使用 for 循环调用列表中的项目?

java - 用 "X"画一棵圣诞树

java - 如何从 bean 类型数组列表中获取元素的索引

arrays - 将配置文件中数组的值存储到变量

linux - 如何使用 bash 打印旧值和新值?

linux - 如何使用该子目录的名称重命名所有子目录中的文件?

bash - 在shell中的另一个函数中调用时如何将参数传递给函数