1

有人知道如何将 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
4

2 回答 2

0

这可以工作:

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

你在哪里-d给脚本你想要解析的日期,其中的每个变量"+ ..."代表:

  • Y年
  • d天
  • 小时(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 在评论中所指出的,-r( display the last modification time of FILE) 参数可用于此目的,因为它指示我们想从中了解信息的文件:

$ date -r name_of_file "+%Y-%m-%d %H:%M"
于 2013-05-10T18:43:51.933 回答
0

假设您使用的是 GNU ls,您可以将时间戳格式指定为ls. 一旦您确定了您想要的格式,您只需创建一个别名以始终使用该选项。真的只需检查该链接并尝试使用选项。

于 2013-05-13T08:40:52.630 回答