kev*_*aks 1 ls grep timestamps
我想grep输出ls并通过管道将其输入,less以便我可以滚动输出。
这不起作用,但理想情况下,我可以输入:
ls -alh | grep "file" | less
Run Code Online (Sandbox Code Playgroud)
任何建议如何做到这一点?我的总体目标是查看当前目录中所有文件的修改日期,这些文件的文件名中包含“file”。我已经阅读stat过,但这对我的目的来说似乎太冗长了。
我假设stat“太冗长”意味着该命令也会输出很多其他信息,如果您不从中请求特定的信息位,它默认会这样做。
使用 GNU stat:
stat --printf '%y\t%n\n' -- *file*
Run Code Online (Sandbox Code Playgroud)
这将仅输出人类可读格式的修改时间戳,后跟选项卡和文件名。这将对包含子字符串的所有文件名执行file。在 中设置dotglobshell 选项bash,使用shopt -s dotglob,还允许包含隐藏的文件名。
%Y代替使用%y以获取自 Epoch 以来以秒为单位的修改时间戳。
在 BSD 系统上,使用
stat -f '%Sm%t%N' -- *file*
Run Code Online (Sandbox Code Playgroud)
相反(做同样的事情)。更改%Sm为%Fm以获取自 Epoch 以来的秒数。
有关详细信息,请参阅您系统上的stat( man 1 stat)手册。