在列出当前目录中的文件时显示年份

WAE*_*AEL 80 linux shell-script date

我在 Red Hat 服务器上工作。命令ls -lll给我格式的日期和时间+"%b %-d %H:%M"

我想以每个文件创建的年份出现在日期内的方式列出文件。

这怎么可能?

小智 116

您可以使用man ls,在这里您可以找到--time-style参数。或者你可以使用:

ls --full-time.

  • 时间样式示例 `ls -l --time-style=+%F` (5认同)
  • 对于那些已经将“ll”设置为“ls -la”或其他内容的人,“ll --full-time”也可以。 (2认同)
  • ls -l --time-style=long-iso 显示更清晰的输出,因为不打印秒/毫秒 (2认同)

Dan*_*ría 15

ls -l将显示月、日和-以来,根据 BSD 手册页:如果文件的修改时间在过去或未来超过 6 个月,则显示上次修改的年份代替小时和分钟领域。

因此,要确保始终显示该年份,请使用:

ls -l --time-style=long-iso (GNU/Linux)

ls -lT 将在 BSD (MacOS) 中显示完整的时间信息

  • `ls -lT` 不适用于 Debian(例如 Raspberry Pi 和 Ubuntu)。 (2认同)

G_S*_*yle 7

除了 Jan Marek 的回答......我注意到你可以逃脱:

ls --full 或 ls --fu

这将做与ls --full-time他描述的相同的事情。谢谢斯蒂芬·查泽拉斯。现在我ls --fu到处打字。:)

  • 或`ls --fu`。只要没有歧义,就可以缩写 GNU 风格的长选项(`--f` 不起作用,因为还有 --file-type 和 --format)。请注意,未来版本可能会引入`--full-perms`,因此依赖它是危险的。 (2认同)

Phi*_*ilT 5

既然你问的是年份,ls -lac那么如果像我一样,你一直使用,很容易记住ls -la。该c给你的ctime将显示一年,如果不是当年或小时和分钟,如果它是。

  • `ls -l` 显示过去六个月中的日期和时间,以及其他日期的日期和年份。ctime 可以和 mtime(修改日期)一样多地显示在过去六个月中,因此 `ls -lac` 可以像 `ls -la` 一样显示时间(而不是年)。此外,正如 Mateen Ulhaq 指出的那样,`ls -lac` 显示的日期与 ls -la 显示的日期不同。这个答案是错误的。 (4认同)
  • 这似乎将 `ls` 的行为更改为 **date changed** 而不是默认的 **date modified**。 (3认同)
  • 这个“答案”到底是怎么得到七票的? (3认同)