1

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

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

2 ответа2

7

Это будет отображать возраст файла в днях:

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.

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

0

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

пример

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

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

Чтобы не вводить эту зависшую команду, вы можете использовать псевдоним в файле .bashrc.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .