任何人都知道如何将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
答案 0 :(得分:0)
这可行:
$ 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"
答案 1 :(得分:0)
假设您正在使用GNU ls,您可以specify the time-stamp format as an option to ls
。一旦你想出你想要的格式,你就可以使用别名来始终使用该选项。真的只需检查该链接并尝试使用选项。