Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何使用stat-c';%按上次修改的时间对文件排序n%Y';?(猛击)_Bash_Unix - Fatal编程技术网

Bash 如何使用stat-c';%按上次修改的时间对文件排序n%Y';?(猛击)

Bash 如何使用stat-c';%按上次修改的时间对文件排序n%Y';?(猛击),bash,unix,Bash,Unix,我想使用stat-c%n%Y*对目录中的文件进行排序,此命令提供与上次修改时间连接的文件名。问题是,我不知道如何使用最后一个数字字符(上次修改时间)来使用管道对文件进行排序,我猜应该是这样的stat-c%n%Y*| sort,我已经阅读了stat和sort手册以及其他过滤器手册,如find或cut,但我仍然没有解决方案。非常感谢您的建议。如果您用空格分隔文件和时间,则可以使用-k 2对第二列进行排序: rseaman@Ubuntu-PC:~/temp/20180310/49211913$ ls

我想使用
stat-c%n%Y*
对目录中的文件进行排序,此命令提供与上次修改时间连接的文件名。问题是,我不知道如何使用最后一个数字字符(上次修改时间)来使用管道对文件进行排序,我猜应该是这样的
stat-c%n%Y*| sort
,我已经阅读了stat和sort手册以及其他过滤器手册,如find或cut,但我仍然没有解决方案。非常感谢您的建议。

如果您用空格分隔文件和时间,则可以使用
-k 2
对第二列进行排序:

rseaman@Ubuntu-PC:~/temp/20180310/49211913$ ls -l
total 12
-rw-rw-r-- 1 rseaman rseaman  0 Mar 10 18:42 file0
-rw-rw-r-- 1 rseaman rseaman 37 Mar 10 18:10 file1
-rw-rw-r-- 1 rseaman rseaman 22 Mar 10 18:10 file2
-rw-rw-r-- 1 rseaman rseaman 19 Mar 10 18:13 file3
rseaman@Ubuntu-PC:~/temp/20180310/49211913$ stat -c "%n %Y" * | sort -n -k 2
file1 1520705401
file2 1520705411
file3 1520705612
file0 1520707323

然后,如果希望使用
|tr-d'
,您可以在以后删除空格,但这会干扰其中包含空格的文件。

您可以使用一个简单的命令在目录中列出文件(按修改时间排序):

ll -trh

-t按修改时间排序

-r排序时按相反顺序排序


-h使用-l,以人类可读的格式打印大小

请显示输入数据的外观、您尝试过的内容、预期结果,尤其是您正在运行的unix版本。
stat
命令在您的操作系统中的工作方式与我的不同<代码>-c对我来说不是有效的选项。
ls -ltrh