我希望以一些人性化的单位来查看文件的使用年限(自上次修改以来的时间)(“昨天”、“2 天前”、“3 年前”等单位可获得加分,尽管只需几天就足够了)。
有没有简单到可以记住并根据需要输入的 shell 单行程序?有没有工具(针对 Debian/Ubuntu 打包)?我是否需要编写自定义 shell 脚本来执行一些算术运算,并将其安装在我拥有的所有服务器上?
答案1
这将显示文件的存在天数:
age () { stat=$(stat --printf="%Y %F\n" "$1"); echo "The ${stat#* } '$1' is $((($(date +%s) - ${stat%% *})/86400)) days old."; }
例子:
$ age foo
The regular file 'foo' is 41 days old.
$ age ../bar
The directory '../bar' is 296 days old.
$ age /path/to/baz
The symbolic link '/path/to/baz' is 207 days old.
可以进一步细化以显示月份、年份等的年龄。
答案2
它足够接近于产生一个良好的人类可读日期! ls 有一个选项--time-style
。它允许您格式化将显示的日期。
例子
ls -l --time-style="+%b %_d %Y"
-rw-r--r-- 1 root root 11359620 Jul 20 2010 file.ext
为了防止输入这个挂起的命令,您可以在 .bashrc 文件中为其添加别名。