在教程中我遇到了符号%y
和%d
。
for i in $(stat -c %y "$1"/* | cut -c 12-13); do
printf "\nTotal files = %d\n" $count
检查没有选项或初选名为“%y”
$ man stat | egrep -o "%y"
return nothing
我看到%d
用于其他语言的数字,但无法从Bash Reference Manual找到。
他们是什么意思?
答案 0 :(得分:2)
虽然printf
可能是内置的bash,但stat
却不是。因此,它完全取决于您已安装的stat
的变体/版本。
当我运行你的man/grep
组合时,我实际上得到了输出,因为我的stat
是GNU的版本8.2。
我建议您运行stat --version
以查看您实际拥有的版本,然后stat -c %y /
以查看该格式说明符是否适用于您的版本。您的man
页面可能不在数据范围内。
如果事实证明你的stat
不支持你需要的格式说明符,你可以随时下载,编译和使用GNU的版本来解决问题。< / p>
就为什么你无法在%d
链接中找到bash
而言,因为它有一点美感(如果你跑的话,你也应该看到它) man bash-builtins
并搜索printf
):
除了标准
printf(1)
格式外,printf
还会解释以下扩展程序......
换句话说,它只列出标准格式说明符的扩展名。如果您运行man 1 printf
,则会看到它支持:
...所有C格式规范以
diouxXfeEgGcs
之一结尾。
答案 1 :(得分:1)
%y time of last data modification, human-readable
stat --version
stat (GNU coreutils) 8.28
Copyright © 2017 Free Software Foundation, Inc.