有人知道如何将 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
这可以工作:
$ date -d "Mar 21 15:41" "+%Y-%m-%d %H:%M"
2013-03-21 15:41
你在哪里-d
给脚本你想要解析的日期,其中的每个变量"+ ..."
代表:
要从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"
假设您使用的是 GNU ls,您可以将时间戳格式指定为ls
. 一旦您确定了您想要的格式,您只需创建一个别名以始终使用该选项。真的只需检查该链接并尝试使用选项。