stat: "long-iso" 형식으로 시간을 인쇄합니다.

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

답변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

관련 정보