我知道您可以获取最后修改的文件夹,但是您可以获取最后添加的文件夹吗?或者实际上我想要的是第一个添加的文件夹。
我有一个脚本,可将Flatiron的课程分叉并将其下载到一个文件夹中,并且由于我按顺序手动获得了这些课程,然后在完成后将其移至“ done”文件夹中,因此该文件夹中的最旧文件夹lessons文件夹应该是我准备的下一个课程。因此,最好有一个脚本来调用下一课,但是该文件夹可能由于已添加而被修改了(偶然地),因此按修改后的排序将不起作用。
这可能吗?
答案 0 :(得分:1)
是的,这是可能的,但您将需要使用stat(1):
for a in *; do stat -c "%n %w" "$a"; done
将以可读格式显示所有文件以及创建时间;使用%W
(大写)将打印一个unix时间戳,适合将输出传递给sort(1),这可能是您想要的。有关详细信息,请参见man stat
。
评论后更新
Triplee指出循环不是必须的,但实际上我忽略了这一点(以前从未使用过stat ...)。因此,以上命令可以简化为:
stat -c "%n %w" *
,可以以任何所需的方式读取或传输输出流。
更新用于排序
在具有相关日期的文件列表之后,可以对它们进行排序:
stat -c "%W %n" *
...输出类似:
1415945135 conf openwrt.txt
1424503577 Triton
1440843167 alterwifi.txt
1465755258 brushless.txt
对于每行,第一个数字是创建日期的时间,以“纪元秒”表示;第二个字段是文件名。
可以对其进行排序,然后进行过滤以仅获取第一行,该行指示最早创建的文件:
stat -c "%W %n" * |sort -n |tail -n 1
以我为例输出:
1546278526台式机
OP的一些注意事项:我不知道为什么选项-c
会出错,在我的系统中,必须指定格式字符串。