UNIX stat формат времени - PullRequest
       7

UNIX stat формат времени

10 голосов
/ 15 ноября 2010

Можно ли отформатировать вывод времени stat? Я использую

stat -c '%n %A %z' $filename

в bash-скрипте, но его формат времени не тот, который я хочу. Можно ли изменить этот формат в команде или мне придется сделать это позже вручную?

Пример вывода следующий:

/lib drwxr-xr-x 2010-11-15 04:02:38.000000000 -0800

Ответы [ 2 ]

7 голосов
/ 15 ноября 2010

Вы можете попробовать что-то вроде:

date -d "1970-01-01 + $(stat -c '%Z' $filename ) secs"

Который дает вам только дату. Вы можете отформатировать дату, используя параметры форматирования даты (см. man date ), например:

date -d "1970-01-01 + $(stat -c '%Z' $filename ) secs" '+%F %X'

Это не дает вам имя и разрешения, но вы можете сделать это следующим образом:

echo "$(stat -c '%n %A' $filename) $(date -d "1970-01-01 + $(stat -c '%Z' $filename ) secs"  '+%F %X')"
6 голосов
/ 15 ноября 2010

Вы можете просто удалить десятичную часть следующим образом:

stat -c '%n %A %z' "$filename" | sed 's/\(:[0-9]\{2\}\)\.[0-9]* /\1 /'

Редактировать:

Вот еще один способ усечь десятичную часть:

stat -c '%n %A %.19z' "$filename"

Это зависит от длины в 19 символов: 2010-11-15 04:02:38

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