Как отобразить измененное время файла?

Мне нужен метод для поиска и печати измененного времени файла для использования в сценарии bash.

Я придумал:

ls -l $filename | cut -d ' ' -f '6-8'

Какие выходы:

Jul 26 15:05

Хотя я бы хотел избежать синтаксического анализа ls, также было бы полезно иметь год там.

В идеале я бы хотел чтобы увидеть результат, аналогичный выходу по умолчанию команды date.

Tue Jul 26 15:20:59 BST 2016

Какие другие полезные методы доступны?

1
задан 26 July 2016 в 17:23

1 ответ

Я попробовал

ls -l $filename | cut -d ' ' -f '6-8'

, но если дата меньше 10, это пропускает время. Это связано с дополнительным пространством перед датой, если оно меньше 10. Попробуйте это:

filename="test.txt"
ls -l $filename | awk -F ' ' '{print $6" "$7" "$8}'

Команда awk печатает поля, разделенные пробелами (-F ''). Надеюсь, что это работает. Я знаю, что это не отвечает на исходный вопрос, а просто поясняет команду ls только для даты и времени. Когда Google «ubuntu получает дату и время файла», он перечисляет этот вопрос вверху, что я и искал, так как мне тоже не нужен год. В течение года, даты и времени вы можете попробовать одну из приведенных ниже команд. % m печатает номер месяца. % b печатает аббревиатуру месяца: Снимите% H:% M, если вам не нужен час и минута. % -d не печатает начальный ноль для дня месяца.

date -r $filename +"%Y %m %-d %H:%M"
date -r $filename +"%y %m %-d %H:%M"
date -r $filename +"%Y %b %-d %H:%M"
date -r $filename +"%y %b %-d %H:%M"
1
ответ дан 23 May 2018 в 07:46

Другие вопросы по тегам:

Похожие вопросы: