Не використовуйте ls
, це робота для stat
:
stat -c '%y' filename
-c
дозволяє отримувати конкретний вихід, тут %y
ми отримуємо останній модифікований час файлу у читаному для людини форматі. Щоб отримати час у секундах після використання епохи %Y
:
stat -c '%Y' filename
Якщо ви також хочете ім'я файлу, використовуйте %n
:
stat -c '%y : %n' filename
stat -c '%Y : %n' filename
Встановіть специфікатори формату відповідно до ваших потреб. Перевірка man stat
.
Приклад:
% stat -c '%y' foobar.txt
2016-07-26 12:15:16.897284828 +0600
% stat -c '%Y' foobar.txt
1469513716
% stat -c '%y : %n' foobar.txt
2016-07-26 12:15:16.897284828 +0600 : foobar.txt
% stat -c '%Y : %n' foobar.txt
1469513716 : foobar.txt
Якщо ви хочете, як вихід Tue Jul 26 15:20:59 BST 2016
, використовуйте час епохи як вхід для date
:
% date -d "@$(stat -c '%Y' a.out)" '+%a %b %d %T %Z %Y'
Tue Jul 26 12:15:21 BDT 2016
% date -d "@$(stat -c '%Y' a.out)" '+%c'
Tue 26 Jul 2016 12:15:21 PM BDT
% date -d "@$(stat -c '%Y' a.out)"
Tue Jul 26 12:15:21 BDT 2016
Перевірте date
специфікатори формату, щоб задовольнити ваші потреби. Дивіться man date
теж.
ls
це непослідовно впроваджено у всіх системах, і тому ніколи не слід використовувати для будь-якої автоматизації. Натомість використовуйте команди, такі якstat
іfind
під час написання сценаріїв.