Bash
stat:以“long-iso”格式列印時間
對於我的腳本,我希望有
stat
命令以一種友好的、人性化的方式列印時間:2015-02-04 00:48:31
.ls
呼叫這種格式long-iso
,它可以像這樣使用:$ ls -lA --time-style=long-iso .bashrc -rw------- 1 michael michael 5740 2015-02-04 00:48 .bashrc
但是,沒有這樣的開關
stat
。“人類可讀時間”的選項%y
如下所示:$ stat -c'%A %h %U %G %s %y %n' .bashrc -rw------- 1 michael michael 5740 2015-02-04 00:48:31.160827516 +0100 .bashrc
有什麼簡單的方法可以使
stat
列印時間以“long-iso”格式列印嗎?我需要使用
stat
而不是ls
因為我需要調整列印哪些列(屬性)以及列印順序。我在 Debian 上使用
stat
表單包coreutils
版本。8.13-3.5
最簡單的方法是使用@don_crissti建議
--printf
的選項:stat --printf='%A %h %U %G %s %.16y %n\n' .bashrc
如果由於某種原因你不能這樣做,你可以解析 `stat -c ‘%y’ 的輸出:
$ stat -c'%A %h %U %G %s %y %n' .bashrc | awk '{$7=substr($7,1,8); $8=""}1;' -rw-r--r-- 1 terdon terdon 9737 2015-02-01 18:12:18 .bashrc
或者你可以使用 GNU
date
來轉換它:$ date -d "2015-02-01 18:12:18.665916181 +0200" Sun Feb 1 19:52:18 EET 2015 $ date -d "2015-02-01 18:12:18.665916181 +020" +"%F %R:%S" 2015-02-01 19:52:18