Формат времени stat UNIX
можно ли отформатировать вывод времени stat? Я использую
stat -c '%n %A %z' $filename
в скрипте bash, но его формат времени-это не то, что я хочу. Можно ли изменить этот формат в команде, или мне придется вручную сделать это позже?
ниже приведен пример вывода:
/lib drwxr-xr-x 2010-11-15 04:02:38.000000000 -0800
2 ответов
вы можете попробовать что-то вроде:
date -d "1970-01-01 + $(stat -c '%Z' $filename ) secs"
что дает вам только дату. Вы можете отформатировать дату, используя параметры форматирования даты (см. свидание), например:
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')"
вы можете просто удалить десятичную часть, как это:
stat -c '%n %A %z' "$filename" | sed 's/\(:[0-9]\{2\}\)\.[0-9]* / /'
Edit:
вот еще один способ обрезать дробную часть:
stat -c '%n %A %.19z' "$filename"
Это зависит от даты 19 символов: 2010-11-15 04:02:38