按最后修改时间与时间戳排序匹配文件,获取最新文件求助
解决查找最新特定模式文件的问题
你的思路已经非常接近目标了!现有的命令已经能按修改时间从新到旧列出所有.ctl文件,只需要最后加一步筛选出第一行(也就是最新的那个文件)就可以完全实现需求。
完整命令
find /home/weather/data/blend/ -type f -name "*.ctl" -printf '%Ts\t%p\n' | sort -nr | head -n1 | cut -f2
各部分作用拆解
find /home/weather/data/blend/ -type f -name "*.ctl":遍历指定目录下所有后缀为.ctl的普通文件-printf '%Ts\t%p\n':输出每个文件的秒级修改时间戳(%Ts)和文件路径(%p),用制表符分隔sort -nr:对时间戳进行逆序数值排序,这样最新修改的文件会排在最前面head -n1:只保留排序后的第一行(也就是最新的那个文件的时间戳+路径)cut -f2:提取制表符分隔的第二列,也就是最终的文件路径
可选优化:用更易读的时间格式验证(非必需)
如果想确认文件的修改时间是否正确,可以先不加cut和head,查看完整的时间戳和路径对应关系:
find /home/weather/data/blend/ -type f -name "*.ctl" -printf '%Tc\t%p\n'
这里%Tc会输出人类可读的完整时间格式,方便你直观确认文件的修改时间。
内容的提问来源于stack exchange,提问作者arnpry
相关产品推荐
相关产品推荐

