如何在 ls -a 的输出中进行 grep

如何在 ls -a 的输出中进行 grep

我想要grep输出ls并将其通过管道输入less,以便我可以滚动浏览输出。

这不起作用,但理想情况下,我可以输入以下内容:

ls -alh | grep "file" | less

有什么建议如何做到这一点?我的总体目标是查看当前目录中文件名中包含“file”的所有文件的修改日期。我已阅读过,stat但这对于我的目的来说似乎太冗长了。

答案1

我假设stat“太冗长”意味着该命令也会输出很多其他信息,如果您不从中请求特定的信息,它默认会输出很多其他信息。

使用 GNU stat

stat --printf '%y\t%n\n' -- *file*

这只会以人类可读的格式输出修改时间戳,后跟制表符和文件名。这将对包含子字符串 的所有文件名完成file。在, with中设置dotglobshell 选项,也允许包含隐藏文件名。bashshopt -s dotglob

使用代替%Y%y获取自纪元以来的修改时间戳(以秒为单位)。

在 BSD 系统上,使用

stat -f '%Sm%t%N' -- *file*

相反(做同样的事情)。更改%Sm%Fm获取自纪元以来的秒数。

有关详细信息,请参阅系统上stat( )的手册。man 1 stat

相关内容