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


58

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

我想以某种方式列出文件,以使每个文件创建的年份都显示在日期内。

那怎么可能?


不,我不认为我尝试“ ls -lT”未找到
WAEL,2012年

1
ls -lT适用于Mac
OS X

1
通常,Unix不会跟踪文件的创建时间,即使这样做,ls通常也无法显示文件。因此,总的来说,这是不可能的。
G人

Answers:


86

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

ls --full-time


1
@bob:完全同意Turco。如果您不这样做,那么没人会去回答您的问题。
黑暗骑士

5
时间样式示例ls -l --time-style=+%F
sobi3ch

1
对于已经ll设置为“ ls -la其他”的人,ll --full-time也可以使用。
Meetai.com

8

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

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

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

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


6

由于您要求的是一年,ls -lac因此很容易记住是否像我一样一直使用ls -la。可以c给您ctime,如果不是当前年份,则显示年份;如果不是当前年份,则显示小时和分钟。


我喜欢这个。输出中的噪音大大减少,将来只需要记住一个字母。
艾瑞克(Eric)

1
这似乎将行为更改lsdate date而不是默认的date修改
Mateen Ulhaq '18 -4-22

2
ls -l显示过去六个月中日期的日期和时间,以及其他日期中的日期和年份。在过去的六个月中,ctime可能与mtime(修改日期)一样多,因此ls -lac可以尽可能多地显示时间(而不是年份)ls -la。此外,正如Mateen Ulhaq所指出的,ls -lac显示的日期与此不同ls -la。这个答案是错误的。
G人

2
这个“答案”在世界上如何获得7票?
G人

5

除了Jan Marek的答案...。我注意到您可以摆脱:

ls --full或ls --fu

它将执行与ls --full-time他描述的相同的操作。感谢StéphaneChazelas。现在我ls --fu到处打字。:)


1
或者ls --fu。只要没有歧义,就可以缩写GNU样式的long选项(--f因为也有--file-type和--format,因此不起作用。请注意,将来的版本可能会引入,--full-perms因此依靠它是危险的。
斯特凡Chazelas

1
很高兴知道!其全部内容与减少打字有关。:)
G_Style

2

如果您正在使用busybox(嵌入式发行版,例如OpenWRT,LEDE),则您要查找的开关-e的版本号为1.26.2和--full-time1.27.0及更高版本(请参阅更改了该版本的提交)。


1
-e它还可以与Solaris ls和ast-open一起使用,因此实际上比GNU的更接近标准--full-time。可耻的是,busybox在较新的版本中将其删除。
15:37StéphaneChazelas

@StéphaneChazelas不知道!感谢您的编辑
代码Bling

-1

可能最喜欢:

$ ls -altT / path / to / some / dir


正如前面所指出的,该-T选项将不与GNU工作ls(也未在指定POSIX)。另外,在提供代码作为答案时,最好解释一下它的每个部分的功能。
Anthony Geoghegan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.