Linux下ls命令中的time-style参数
在做WebShell时为了实现文件文件管理需要确定ls命令下如何获取文件列表及相关信息,这里mark下
实现命令
1 | ls -Al --time-style=full-iso |
通过上述命令执行可以得到如下格式结果
1 | total 190600 |
根据结果,再通过正则可以获取到
- 权限信息
- 所属用户
- 所属组
- 文件大小
- ISO时间,包含时区信息
- 文件名,->即软链接
局限性/兼容性
如上time-style参数并非所有Linux均支持,另外类Unix的系统也并不支持。
这里举几个例子
- Alpine Linux即不支持,同时并没有内置的命令可以等效time-style。
- 类Unix如FreeBSD也并不支持
解决办法
- 安装
coreutils
,FreeBSD下执行pkg install coreutils
,Alpine Linux下执行apk add coreutils
- 放弃使用time-style参数,组合使用stat命令解决,当然坏处就是性能会差些,毕竟需要多命令执行
写在最后
- Linux系统众多,因此在平时使用的一些命令也需要注意兼容性,兼容性来自于两方面,1是命令版本,2是Linux/Unix遵从的规范不同,命令参数也会有所差异。