Мне нужен метод для поиска и печати измененного времени файла для использования в сценарии bash.
Я придумал:
ls -l $filename | cut -d ' ' -f '6-8'
Какие выходы:
Jul 26 15:05
Хотя я бы хотел избежать синтаксического анализа ls, также было бы полезно иметь год там.
В идеале я бы хотел чтобы увидеть результат, аналогичный выходу по умолчанию команды date.
Tue Jul 26 15:20:59 BST 2016
Какие другие полезные методы доступны?
Я попробовал
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"