在bash中排序和比较日期
问题描述:
我试图找到,保存和比较2个不同目录中文件的“最后更改”日期时间,并找出哪个目录有最新更改。在bash中排序和比较日期
我来到这么远:
find ./map -type f -print0 | xargs -0 stat -f "%Sm"
打印在一个目录下的所有文件“最后更改日期”。
输出看起来是这样的:
Oct 5 12:07:59 2015
Aug 27 12:40:29 2015
Aug 27 12:40:42 2015
Aug 27 12:40:42 2015
Aug 27 12:40:40 2015
Aug 27 12:40:37 2015
Aug 27 12:40:35 2015
Aug 27 12:40:33 2015
我需要对它们进行排序,取最后一个,对于其他目录再次做同样的事情,然后比较输出,以找出哪一个是最新。
我不知道如何对这些输出进行排序,因为它们必须按年份排序,然后按月排列...... 而且我也不知道如何将这些值转换成我可以比较的东西bash脚本...
任何想法?
答
试图通过sort
第一管道中的数据:
find /map -type f -print0 | sort | xargs -0 stat -f "%Sm"
答
我想...找出哪些目录有最新的变化。
为什么不让ls
做这项工作?
/bin/ls -t `find map mop -type f` | head -1
假设你的两个目录是map
和mop
,这个按时间排序的文件他们并输出第一,我。即最新。拿dirname
,你有你想要的。
'find ./map -type f -printf“%A +%p \\ n”'会以更容易排序的格式为您提供日期。 –
未知的主要或运营商? – Luka
不要在'-exec'足够的地方使用'xargs':'find ./map -type f -exec stat -f“%Sm”{} \;'。 – chepner