Чому "ls -all" показує час для деяких файлів, але лише рік для інших?


32

Якщо ви видаєте ls -allкоманду, деякі файли чи каталоги мають рік, а деякі мають час? Чому одні показують рік, а інші показують час? Чи відповідає час часу створення файлу?

введіть тут опис зображення


15
Ви використовуєте -all. Зверніть увагу, що останній L є зайвим, оскільки allне означає слово "всі", а не -a(показати всі файли) та -l(формат довгого списку). Все разом, ls -alте саме, що ви використовуєте.
fedorqui

Відповіді:


35

За замовчуванням часові позначки файлів перераховані у скороченому вигляді, використовуючи дату, на зразок "30 березня 2002 р." Для недавніх часових позначок, а також дату без року та час, як "30 березня 23:45" для останніх часових позначок. Цей формат може змінюватися залежно від поточного локального запису, як детально описано нижче.

Часова мітка вважається останньою, якщо їй менше шести місяців і не датується в майбутньому. Якщо часова марка, датована сьогодні, не вказана в останній формі, часова марка буде в майбутньому, це означає, що, ймовірно, у вас є проблеми з перекосом годинника, які можуть порушити такі програми, як зробити, які покладаються на часові позначки файлів.

Джерело: 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
Варто зазначити, що часи в майбутньому також будуть показувати рік, а не час. Це може статися, якщо ви обмінюєтесь файлами між хостами, де годинник не синхронізований.
kasperd

24

Представлений час - це час модифікації. Зверніть увагу, що ls -allце те саме ls -l -a, що і чим відрізняється від ls --all. Немає підстав використовувати подвійний lу своєму прикладі. Якщо ви хочете побачити час модифікації для кожного файлу, ви можете використовувати ls -al --full-time.


4
У GNU lsдля звичайного використання --time-style=long-isoможе бути корисніше. --full-timeпоказує секунди, включаючи дев'ять шифрів (!) після десяткової крапки, яка зазвичай не потрібна.
пабук

1
--full-timeМається на увазі -l, щоб ви могли просто використовувати ls -a --full-time.
kasperd

6

Якщо дата / час, які вона намагається відобразити, є останніми півроку, lsвідображаються дата та час. Якщо це минуло понад півроку - або якщо це буде в майбутньому - lsвідображаються дата та рік.

Як зазначено в інших відповідях,

  • ls -llеквівалентно ls -lта
  • ls -allеквівалентно ls -al, що еквівалентно ls -a -l, ls -l -aі ls -la.

За допомогою цього -lпараметра lsвідображається дата / час модифікації файлів (включаючи каталоги, оскільки "все є файлом"), якщо тільки немає

  • -c також вказано, у якому випадку він відображає час зміни, або
  • -u також вказано, у такому випадку він відображає час доступу.

Див. Ls (1) для отримання додаткової інформації.


3

Цей вихід налаштовується на максимальний інформаційний вміст: коли час "достатньо близький" до поточного часу (не зовсім впевнений, але я здогадуюсь протягом шести місяців) рік минає і замість цього відображається час доби. В іншому випадку показаний рік. Це за замовчуванням, головним чином, тому що ви, ймовірно, не так сильно переймаєтесь точним часом дня, коли щось було змінено, якщо це було років тому. GNU coreutils lsмає --time-styleможливість явно контролювати це.


0

Ви щось зрозуміли? Він просто з'являється час години 20 жовтня, який є сьогодні, це означає, що він відображатиметься в останній раз, коли ви змінили файл, але в інші дні, які не є сьогодні, він покаже дату лише без часу.

Виявляється, це не це, як відповів Томас. Я просто спробував використати метод відрахування, але не впевнений у правильному висновку.


1
Aug 6 19:50 .config, Aug 6 19:48 VNCHOWTO.
G-Man каже: "Відновіть Моніку"

Ідеально, я просто зробив дебютацію, шукаючи дати та з'єднуючи точки, що не завжди може бути ідеальним висновком.
Рафаель Кампос Нунес
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.