ls 命令:仅显示时间(iso 格式)

ls 命令:仅显示时间(iso 格式)

我找到了一种以 iso 格式显示日期的方法:如何使 ls 生成 ISO 8601 格式

现在我只想显示时间,而不是之前的列:

ls --time-style=long-iso  -l
drwxr-xr-x 11 foo foo  4096 2018-03-06 14:17 mydir

我怎样才能使输出看起来像这样?

2018-03-06 14:17 mydir

最好使用不使用 cut/grep/sed/awk/tr 的解决方案。

答案1

您无法ls单独使用。但find有一个-printf允许自定义输出的操作。请参阅手动的,特别是关于的部分-printf format

me@ubuntu:~> find . -maxdepth 1 -printf '%TY-%Tm-%Td %TH:%TM %f\n'
2019-02-07 11:25 .
2019-02-05 18:58 foo.txt
2019-02-05 17:40 bar.txt
2019-01-22 16:47 other.file
2019-02-05 16:42 README.txt

这里%TY表示文件修改的年份、%Tm月份等等。%f是文件名。-maxdepth 1避免了递归。

答案2

您可以使用 cut 轻松完成这项工作

hostname$ ls --time-style=long-iso  -l | cut -f 6- -d " "
2019-02-06 02:57 Desktop/
2019-02-07 02:08 Documents/
2019-02-08 04:02 Downloads/
2019-01-29 04:04 Pictures/
2018-12-15 13:35 VirtualBox VMs/
2019-02-08 03:34 custom-repo/

正如评论中所述,这只在特定情况下有效。不过,我认为你awk也可以这样做(我绝不会自称是 awkspert :-) 我甚至都不是 awkspert 的近亲),但我提出了这个 awk 解决方案

hostname$ ls --time-style=long-iso  -la | awk '{print $6, $7, $8, $9}'
Jan 29 08:34 .xinitrc
Dec 17 17:55 .xinitrc.bkp
Feb 8 04:21 .zcompdump
Feb 8 04:58 .zdirs
Oct 11 16:51 .zprofile
Dec 10 10:17 .zsh_history
Feb 7 01:48 .zshrc.local
Feb 6 02:57 Desktop/
Feb 7 02:08 Documents/
Feb 8 04:02 Downloads/
Jan 29 04:04 Pictures/
Dec 15 13:35 VirtualBox
Feb 8 03:34 custom-repo/

这似乎适用于评论中提出的条件

答案3

您可以使用它stat -c"%y %n",它的输出非常接近您想要的,但如果没有进一步处理它并不完全相同,例如:

$ stat -c"%y %n" *
2019-02-08 00:36:58.025402641 +0100 file.docx
2019-02-08 00:36:55.845416494 +0100 file.txt
2019-02-02 16:50:59.572351725 +0100 test

要删除秒和时区部分,可以使用sed以下命令:

$ stat -c"%y %n" * | sed 's/:[^:]*+[0-9]*//'
2019-02-08 00:36 file.docx
2019-02-08 00:36 file.txt
2019-02-02 16:50 test

如果你想这样做合理地,即不依赖文本处理,您应该使用date。但请注意,这会对处理的每个文件/目录调用一次stat和,效率不高。date

$ for i in *; do printf '%s %s\n' "$(date -d@$(stat -c%Y "$i") +'%F %R')" "$i"; done
2019-02-08 00:36 file.docx
2019-02-08 00:36 file.txt
2019-02-02 16:50 test

答案4

ls --time-style=+%Y-%m-%d

应该可以很好地工作,您还可以使用不同的日期修饰符

这是根据man ls

show times using style STYLE: full-iso, long-iso, iso, locale, or +FORMAT;

相关内容