ls -l
只显示文件的修改时间戳到秒。如果两个文件具有相同的时间戳,但不完全在同一时间进行修改,则将ls -lt
按照准确的 mtimes 或直到秒的近似 mtimes 的顺序对文件进行排序(因此文件之间的顺序可以是随意的)?
Sté*_*las 17
这在很大程度上取决于ls
实施。在 GNU/Linux 系统上找到的这 4 个在这里:
$ touch a; touch c; touch b; stat -c %y a c b
2018-01-10 12:52:21.367640342 +0000
2018-01-10 12:52:21.371640148 +0000
2018-01-10 12:52:21.375639952 +0000
Run Code Online (Sandbox Code Playgroud)
GNUls
,来自 GNU 项目(来自 GNU coreutils集合)的那个。这是 GNU 系统(如 Debian(Linux 或 kFreeBSD 内核)、Cygwin 或 Fedora)上常见的一种。
$ gnu-ls -rt
a c b
Run Code Online (Sandbox Code Playgroud)在ls
从传家宝工具箱中的工具的OpenSolaris端口:
$ heirloom-ls -rt
a b c
Run Code Online (Sandbox Code Playgroud)在ls
从AT&T的开源集合,有可能建在ksh93
。另一个有很多花哨的扩展:
$ ast-ls -rt
a c b
$ PATH=/opt/ast/bin:$PATH ksh93 -c 'type ls; ls -rt'
ls is a shell builtin version of /opt/ast/bin/ls
a c b
Run Code Online (Sandbox Code Playgroud)busybox(在大多数(通常是嵌入式)基于 Linux 的系统上发现(或衍生)):
$ busybox ls -rt
c b a
Run Code Online (Sandbox Code Playgroud)因此,其中,GNU 和 astls
考虑了小数第二部分。其他人回退到同一秒内最后修改的文件的词法比较。只有busyboxls
尊重-r
那里。
在我的测试中,FreeBSDls
还支持亚秒级精度(如果它们在 VFS 级别启用,请参阅vfs.timestamp_precision
sysctl)。
zsh
的 globs(使用om
glob 限定符按修改时间Om
排序,反向排序)也需要全部时间:
$ echo *(Om)
a c b
Run Code Online (Sandbox Code Playgroud)
[ file1 -nt file2 ]
,支持的地方一般也支持亚秒级粒度。
归档时间: |
|
查看次数: |
1041 次 |
最近记录: |