为什么“ ls -all”显示某些文件的时间而显示其他文件的时间呢?


32

如果发出ls -all命令,则某些文件或目录具有年份,而某些则具有时间?为什么有些显示年份而另一些显示时间?时间代表文件创建的时间吗?

在此处输入图片说明


15
您正在使用-all。请注意,最后一个L是多余的,因为all它不代表单词“ all”,而是代表-a(显示所有文件)和-l(长列表格式)。总而言之,ls -al与您所使用的相同。
fedorqui

Answers:


35

默认情况下,文件时间戳以缩写形式列出,对于非最近时间戳使用日期,例如“ Mar 30 2002”,对于最近时间戳,使用日期,没有年份和时间,例如“ Mar 30 23:45”。该格式可以根据当前区域设置而更改,如下所述。

如果时间戳记少于六个月且未过时,则认为该时间戳记是最近的。如果今天的时间戳记未以最新形式列出,则该时间戳记将在将来出现,这意味着您可能存在时钟偏斜问题,这些问题可能会破坏诸如make依赖文件时间戳记的程序。

来源:http : //www.gnu.org/software/coreutils/manual/coreutils.html#Formatting-file-timestamps

为了显示:

$ for i in {1..7}; do touch -d "$i months ago" file$i; done
$ ls -l
total 0
-rw-r--r-- 1 terdon terdon 0 Sep 21 02:38 file1
-rw-r--r-- 1 terdon terdon 0 Aug 21 02:38 file2
-rw-r--r-- 1 terdon terdon 0 Jul 21 02:38 file3
-rw-r--r-- 1 terdon terdon 0 Jun 21 02:38 file4
-rw-r--r-- 1 terdon terdon 0 May 21 02:38 file5
-rw-r--r-- 1 terdon terdon 0 Apr 21  2015 file6
-rw-r--r-- 1 terdon terdon 0 Mar 21  2015 file7

4
值得注意的是,将来的时间也将显示年份而不是时间。如果您在时钟不同步的主机之间交换文件,则会发生这种情况。
卡巴斯德,2015年

24

表示的时间是修改时间。请注意,ls -all这与相同ls -l -a,与有所不同ls --alll在您的示例中没有理由使用double 。如果要查看每个文件的修改时间,可以使用ls -al --full-time


4
在GNU中ls,正常使用--time-style=long-iso可能会更有用。--full-time显示秒,其中通常不需要十进制小数点后包括九个密码(!)。
pabouk

1
--full-time暗示-l,因此您可以使用ls -a --full-time
卡巴斯德(Kasperd),2015年

6

如果它试图显示的日期/时间是过去六个月,则 ls显示日期和时间。如果时间早于六个月(或者将来),则ls显示日期和年份。

如其他答案所述,

  • ls -ll等价于ls -l
  • ls -all相当于ls -al,这相当于ls -a -lls -l -a,和ls -la

使用该-l选项,ls显示文件(包括目录,因为“一切都是文件”)的修改日期/时间,除非

  • -c 也被指定,在这种情况下,它显示更改时间,或者
  • -u 还指定,在这种情况下,它显示访问时间。

有关更多信息,请参见ls(1)


3

调整此输出以获取最大的信息内容:当时间与当前时间“足够接近”时(不是完全确定,但我猜是在六个月之内),该年份被省略,而改为显示一天中的时间。否则,显示年份。这是默认设置,主要是因为如果修改时间是几年前,那么您可能不太关心修改日期的确切时间。GNU coreutils ls可以--time-style选择对此进行显式控制。


0

你有意识到吗?它仅显示10月20日的小时时间,即今天,这表示它将显示您最后一次修改文件的时间,但是在其他日期(不是今天)中,它将仅显示日期而没有时间。

托马斯回答说,事实证明并非如此。我只是尝试使用演绎法,毕竟不能保证得出正确的结论。


1
Aug 6 19:50 .configAug 6 19:48 VNCHOWTO
G-Man说'Resstate Monica''2015年

太好了,我只是做了一个推论,即寻找日期和连接点,但这并不总是一个完美的结论。
拉斐尔·坎波斯·努内斯2015年
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.