帮酷LOGO
  • 显示原文与译文双语对照的内容


问题:

如何在linux中使用 ls 来获取文件名日期和大小的列表? 我不需要查看其他信息,如所有者,权限。


回答 1:

ls -l | awk '{print $5, $6, $7, $9}'

这将以字节。月份。日期和文件名打印文件大小。

jin@encrypt/tmp/foo % ls -l
total 0
drwxr-xr-x 2 jin wheel 68 Oct 4 12:43 bar
drwxr-xr-x 2 jin wheel 68 Oct 4 12:43 baz
drwxr-xr-x 2 jin wheel 68 Oct 4 12:43 quux
jin@encrypt/tmp/foo % ls -l | awk '{print $5, $6, $7, $9}'
68 Oct 4 bar
68 Oct 4 baz
68 Oct 4 quux

回答 2:

从技术上说,ls 不可能使用,但 find 可以使用它的-printf switch 执行相同的任务:

find -maxdepth 1 -printf '%t %s %pn'

回答 3:

你可以始终执行以下操作:

$ ls -l
total 0
-rw-r--r-- 1 user staff 0 Oct 6 23:29 file1
-rw-r--r-- 1 user staff 0 Oct 6 23:29 file2
-rw-r--r-- 1 user staff 0 Oct 6 23:30 file3
-rw-r--r-- 1 user staff 0 Oct 6 23:30 file4
-rw-r--r-- 1 user staff 0 Oct 6 23:30 file5
-rw-r--r-- 1 user staff 0 Oct 6 23:30 file6
-rw-r--r-- 1 user staff 0 Oct 6 23:30 file7

cut 到:

$ ls -l | cut -f 8-13 -d ' '
0 Oct 6 23:29 file1
0 Oct 6 23:29 file2
0 Oct 6 23:30 file3
0 Oct 6 23:30 file4
0 Oct 6 23:30 file5
0 Oct 6 23:30 file6
0 Oct 6 23:30 file7
$ 

回答 4:

另一种基于 ls的方法:

> stat --printf='%yt%12st%-16n|n' tmp.*
2017-06-15 10:42:07.252853000 +0200 10485760 tmp.1 |
2017-06-15 10:41:25.659570000 +0200 666 tmp.TKPzm3BfRw |

Explanation %y = 人类可读修改日期;%s = 大小为字节;%n = 文件名( 。%-16n 左对齐,长度 16 ) ;t = tab,n = 换行符。 | = 文本字符,只显示文件名的结尾。

ls 一样,stat 没有选择要显示哪些文件的选项。 ( 这可以由 shell 组合来完成,如上或者某些 find.. . -print0 | xargs -r0 stat.. . 例如)





Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语