如何将ZSH ls时间戳转换为%Y-%m-%d?

时间:2013-05-10 18:40:29

标签: bash date timestamp zsh ls

任何人都知道如何将zsh ls时间戳转换为%Y-%m-%d?

从此(zsh):

host1% ls -lrt | tail -1

-rw-r----- 1 user group 4802 Mar 21 15:41 get.csv

对此(bash):

user@host1:/home/user> ls -ltr | tail -1

-rw-r----- 1 user group 4802 2013-03-21 15:41 get.csv

2 个答案:

答案 0 :(得分:0)

这可行:

$ date -d "Mar 21 15:41" "+%Y-%m-%d %H:%M"
2013-03-21 15:41

-d的位置,您为脚本提供了要解析的日期,"+ ..."中的每个变量代表:

  • Y年
  • 月份
  • d day
  • 小时(24小时)
  • M分钟

要从初始行(来自Mar 21 15:41)获得ls -l,您可以

$ echo "-rw-r----- 1 user group 4802 Mar 21 15:41 get.csv" | cut -d' ' -f6,7,8
Mar 21 15:41

如OP的评论所示,-rdisplay the last modification time of FILE)参数可用于此目的,因为它指示了我们想要知道信息的文件:

$ date -r name_of_file "+%Y-%m-%d %H:%M"

答案 1 :(得分:0)

假设您正在使用GNU ls,您可以specify the time-stamp format as an option to ls。一旦你想出你想要的格式,你就可以使用别名来始终使用该选项。真的只需检查该链接并尝试使用选项。