Якщо ви видаєте ls -all
команду, деякі файли чи каталоги мають рік, а деякі мають час? Чому одні показують рік, а інші показують час? Чи відповідає час часу створення файлу?
Якщо ви видаєте ls -all
команду, деякі файли чи каталоги мають рік, а деякі мають час? Чому одні показують рік, а інші показують час? Чи відповідає час часу створення файлу?
Відповіді:
За замовчуванням часові позначки файлів перераховані у скороченому вигляді, використовуючи дату, на зразок "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
Представлений час - це час модифікації. Зверніть увагу, що ls -all
це те саме ls -l -a
, що і чим відрізняється від ls --all
. Немає підстав використовувати подвійний l
у своєму прикладі. Якщо ви хочете побачити час модифікації для кожного файлу, ви можете використовувати ls -al --full-time
.
ls
для звичайного використання --time-style=long-iso
може бути корисніше. --full-time
показує секунди, включаючи дев'ять шифрів (!) після десяткової крапки, яка зазвичай не потрібна.
--full-time
Мається на увазі -l
, щоб ви могли просто використовувати ls -a --full-time
.
Якщо дата / час, які вона намагається відобразити, є останніми півроку,
ls
відображаються дата та час. Якщо це минуло понад півроку - або якщо це буде в майбутньому - ls
відображаються дата та рік.
Як зазначено в інших відповідях,
ls -ll
еквівалентно ls -l
таls -all
еквівалентно ls -al
, що еквівалентно ls -a -l
, ls -l -a
і ls -la
.За допомогою цього -l
параметра ls
відображається дата / час модифікації файлів (включаючи каталоги, оскільки "все є файлом"), якщо тільки немає
-c
також вказано, у якому випадку він відображає час зміни, або-u
також вказано, у такому випадку він відображає час доступу.Див. Ls (1) для отримання додаткової інформації.
Цей вихід налаштовується на максимальний інформаційний вміст: коли час "достатньо близький" до поточного часу (не зовсім впевнений, але я здогадуюсь протягом шести місяців) рік минає і замість цього відображається час доби. В іншому випадку показаний рік. Це за замовчуванням, головним чином, тому що ви, ймовірно, не так сильно переймаєтесь точним часом дня, коли щось було змінено, якщо це було років тому. GNU coreutils ls
має --time-style
можливість явно контролювати це.
Ви щось зрозуміли? Він просто з'являється час години 20 жовтня, який є сьогодні, це означає, що він відображатиметься в останній раз, коли ви змінили файл, але в інші дні, які не є сьогодні, він покаже дату лише без часу.
Виявляється, це не це, як відповів Томас. Я просто спробував використати метод відрахування, але не впевнений у правильному висновку.
Aug 6 19:50 .config
, Aug 6 19:48 VNCHOWTO
.
-all
. Зверніть увагу, що останній L є зайвим, оскількиall
не означає слово "всі", а не-a
(показати всі файли) та-l
(формат довгого списку). Все разом,ls -al
те саме, що ви використовуєте.