Поиск остроты оболочки для отображения возраста файла (в течение многих дней)

Я хотел бы видеть возраст файла (время начиная с последнего изменения) в некоторых человечески-благоприятных единицах (бонусные очки для вещей как "вчера", "2 дня назад", "3 года назад", хотя только много дней будут достаточны).

Существует ли острота оболочки, которую это достаточно просто запомнить и ввести по требованию? Существует ли инструмент (упакован для Debian/Ubuntu)? Я пишу пользовательский сценарий оболочки, чтобы сделать некоторую арифметику и установить ее на всех серверах, которые я имею?

1
задан 30.07.2010, 16:15

2 ответа

Это отобразит возраст файла в днях:

age () { stat=$(stat --printf="%Y %F\n" "$1"); echo "The ${stat#* } '$1' is $((($(date +%s) - ${stat%% *})/86400)) days old."; }

Примеры:

$ age foo
The regular file 'foo' is 41 days old.
$ age ../bar
The directory '../bar' is 296 days old.
$ age /path/to/baz
The symbolic link '/path/to/baz' is 207 days old.

Дальнейшее улучшение могло быть сделано для показа возраста в месяцах, годах, и т.д.

7
ответ дан 12.12.2019, 08:02

Это достаточно близко для создания хорошей человекочитаемой даты! Существует опция для ls --time-style. Это позволило Вам отформатировать дату, которая будет отображена.

Пример

 ls -l --time-style="+%b %_d %Y"

 -rw-r--r--  1 root root 11359620 Jul 20 2010 file.ext

Для предотвращения ввода этой подвешенной команды, можно исказить его в .bashrc файле.

0
ответ дан 12.12.2019, 08:02

Теги

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