Linux ls 仅显示文件名日期和大小

Pin*_*kie 97 linux command-line ls files

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

f4m*_*4m8 121

为什么不使用stat代替ls

stat -c "%y %s %n" *
Run Code Online (Sandbox Code Playgroud)

  • 要格式化 `stat` 的输出,您可以像 C printf 函数一样将 **width** 信息添加到格式字符串中,例如 `"%y %8s %n"`,它没有记录,但似乎有效(coreutils 8.17,软呢帽 18) (5认同)
  • :-) 只是一个概念证明。在 Real Life[tm] 中,这将是一个 `find 。-type f -print0 | xargs -0 stat -c "%y %s %n"` (4认同)
  • 这很好,但它确实存在“环境太大”/“参数列表太长”的潜在问题。 (2认同)
  • 该命令似乎适用于 GNU `stat`。对于 MacOS/BSD,命令是 `stat -f "%m %z %N" [files...]`。 (2认同)

Mat*_*Mat 36

您可以对如何使用该find实用程序列出文件进行大量控制。ls并没有真正让您指定所需的列。

例如:

$ find . -maxdepth 1 -printf '%CY%Cm%Cd.%CH%CM\t%s\t%f\n'
20111007.0601   4096    .
20111007.0601   2   b
20111001.1322   4096    a
Run Code Online (Sandbox Code Playgroud)

操作的参数printf在联机帮助页中有详细说明。您可以选择不同的时间信息、您想要的大小(文件大小或使用的磁盘块)等。如果需要进一步处理,您还可以使不寻常的文件名安全。


jas*_*yan 31

您总是可以使用另一个实用程序awk来格式化ls1的输出:

/bin/ls -ls | awk '{print $7,$8,$9}'
Run Code Online (Sandbox Code Playgroud)


1.是的,一般来说,你不应该解析 ls 的输出,但在这种情况下,问题特别需要它......


小智 7

您还可以使用“日期”命令。这是非常容易使用:

日期 -r [文件名]


小智 7

如果您想使用 ls,但保留适当的大小,您可以使用:

ls -Ss1pq --block-size=1
Run Code Online (Sandbox Code Playgroud)