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
ベストアンサー1
最も簡単な方法は--printf
オプションを使用することです。提案に従ってください寄稿者: @don_crissti:
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