Я хотел бы видеть возраст файла (время начиная с последнего изменения) в некоторых человечески-благоприятных единицах (бонусные очки для вещей как "вчера", "2 дня назад", "3 года назад", хотя только много дней будут достаточны).
Существует ли острота оболочки, которую это достаточно просто запомнить и ввести по требованию? Существует ли инструмент (упакован для Debian/Ubuntu)? Я пишу пользовательский сценарий оболочки, чтобы сделать некоторую арифметику и установить ее на всех серверах, которые я имею?
Это отобразит возраст файла в днях:
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.
Дальнейшее улучшение могло быть сделано для показа возраста в месяцах, годах, и т.д.
Это достаточно близко для создания хорошей человекочитаемой даты! Существует опция для ls --time-style
. Это позволило Вам отформатировать дату, которая будет отображена.
Пример
ls -l --time-style="+%b %_d %Y"
-rw-r--r-- 1 root root 11359620 Jul 20 2010 file.ext
Для предотвращения ввода этой подвешенной команды, можно исказить его в .bashrc файле.