如何从 stat 命令获取日期字符串?

如何从 stat 命令获取日期字符串?

我有这个来获取目录的时间戳:

stat -c %Y directory_name

我可以通过什么管道来获得这样的日期格式?

20220201

答案1

stat -c %Y是特定于stat.如果stat您的 Solaris 计算机上有 GNU,那么您很可能也会有 GNU,find您可以执行以下操作:

gfind dir -prune -printf '%TY%Tm%Td\n'

您可能还会有 GNU date,您可以使用它执行以下操作:

gdate -r dir +%Y%m%d

(但请注意, ifdir是符号链接,它会给您其目标的修改时间,而不是符号链接本身)。

Solaris 还附带了zsh它自己的stat内置函数(早在stat实用程序被添加到 GNU coreutils 之前就已经有了),您可以在其中执行以下操作:

zmodload zsh/stat
stat -LF %Y%m%d +mtime dir

答案2

date --date=@$(stat -c %Y directory_name) +%Y%m%d

答案3

您可以将其嵌入到日期命令中,例如:

date -d "@$(stat -c %Y directory_name)" +%Y%m%d

但要注意的stat -c是 GNU 扩展,在其他地方不起作用......

答案4

试试这个printf

$ printf '%(%Y%m%d)T\n' "#$(stat -c %Y dir)"
20220127

相关内容