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