如何将find命令与按创建日期和时间进行递归排序一起使用?

时间:2019-03-28 07:33:09

标签: linux bash shell command

我已经花了很多时间尝试这个问题。
查找命令结果与列表顺序无关。

如何从查找递归命令结果中基于创建日期和时间使用目录列表?

ls -lc  

这很好,但不是递归的方式。

find . -type f -iname "*.txt" -exec ls -lc {} \; 

这不起作用。

find . -type f -iname "*.txt" | sort -n 

这也仅基于名称。

1 个答案:

答案 0 :(得分:2)

https://superuser.com/q/294161/992527的解决方案与问题中的命令组合:

find . -type f -iname "*.txt" -printf "%T@ %Tc %p\n" | sort -n

有关命令的变化,请参见不同的答案。
从引用的问题引用的解释:

  来自man find

printf自变量:

     
      
  • %Tk:文件的最后修改时间,格式为k

  •   
  • @:格林尼治标准时间1970年1月1日00:00以来的秒数。

  •   
  • c:语言环境的日期和时间(美国东部标准时间1989年11月4日12:02:33)。

  •   
  • %p:文件名。

  •   

MacOS解决方案从@cooljobs的评论复制到问题中

find . -type f -iname "*.txt" -exec stat -f '%B %m %N' {} \; | rev | cut -d '/' -f 1 | rev | sort -n