osx의 ls 명령 행에서 사용하는 시간 형식을 어떻게 변경합니까?


27

ls표시 시간을 ISO형식 (군사 형식)으로 만들고 싶습니다 . 이 동작을 어떻게 변경할 수 있습니까?

Linux에서는 ls를 사용하여 ls가 긴 형식으로 시간을 표시하도록 할 수 --full-time있지만 OS X에서는 작동하지 않습니다.

업데이트 : 명령에서 사용하는 형식이 locale설정을 기반으로한다는 것을 알고 있습니다. 문제는 OS XI에서 설정 트릭을 사용할 수 없다는 것 LC_TIME=en_DK입니다.


1
대답이 없지만 여전히 유용합니다. stat (1) 명령은 매우 유연하며 원하는 형식으로 타임 스탬프를 표시 할 수 있습니다.
Harald Hanche-Olsen 2018

내 대답에서 언급 한 gls (gnu ls) + 형식 문자열을 지정할 수있는 --style = 플래그를 사용할 수 있으므로 원하는 방식으로 날짜를 표시 할 수 있습니다.
barryj

내가 방법을 알고 있었으면 좋겠다. Apple의 BSD 매뉴얼은 ls시간대를 변경하고 알파가 아닌 날짜 시간을 기준으로 정렬하는 것 외에는 날짜 시간 형식을 지정하는 데 아무것도 제공하지 않는 것 같습니다. developer.apple.com/library/mac/documentation/Darwin/Reference/…
jtheletter 5

답변:


16

gnu coreutils를 설치하면 gnu ls를 사용할 수 있으며 필요에 따라 수행됩니다. brew를 패키지 관리자로 사용하는 경우 다음과 같이 간단합니다.

brew install coreutils
gls -l --time-style=full-iso

감사합니다. 이것은 유용하지만 문제를 해결하지는 못합니다. 사용 된 전체 형식은 여전히 ​​ISO-8601이 아닙니다.
sorin

확인-gnu ls가 포함 된 gnu coreutils를 설치할 수 있으며 원하는 것을 수행 할 수 있습니다. 가장 쉬운 방법은 추출, MacPorts 또는 Fink 중 하나입니다. brew를 사용하므로 'brew install coreutils'만 실행하면됩니다. 그런 다음 gl을 사용할 수 있습니다.
barryj

1
특히, brew install coreutils결과적 /usr/local/bin/gls으로 설치되므로 gls대신 실행해야합니다 ls.
erik.weathers

시간 형식을 지정해야합니다 gls -l --time-syle="+%I"(또는 gdateISO-8601에 맞는 올바른 형식 형식).
rubynorails

따라서 올바른 부름이 이루어집니다. gls -l --time-style = full-iso
AnneTheAgile

13

OS X의 내장 ls명령은 시간 형식 인수를 사용하지 않지만 stat명령은 strftime 형식 문자열을 사용하므로 다음을 수행하여 원하는 것을 대략적으로 얻을 수 있습니다.

stat -l -t '%FT%T' *

%FT%TISO8601 지역의 타임 스탬프를 생성합니다. %zUTC 오프셋을 원하면를 추가하십시오 .

그러나 타임 스탬프가 옳은 반면 나머지는 ls에서 얻는 것만 근사합니다. 예를 들어, ls -l필드를 열에 올바르게 정렬하고 출력을 채색 할 수 있으며 물론 모든 파일 이름을 인수로 전달하지 않고 디렉토리 내용을 나열합니다. tr모든 공간을 탭으로 변환하기 위해 출력을 파이핑하여 최소한 올바른 정렬을 재현 할 수 있습니다 .

stat -l -t '%F%T' * | tr ' ' \\t

또는 ls -l사용자 지정 로캘을 정의하여 ISO8601 타임 스탬프를 생성 할 수 있어야한다고 생각 했지만 완료하지는 못했습니다.


-1

ls -l --time-style=iso 나를 위해 잘 작동합니다.


1
그렇지 않습니다. 산 사자.
Nakilon

2
매버릭스도 아닙니다.
Clay Bridges

4
lsbrew와 같은 패키지 관리자를 통해 시스템 을 인식하지 않고 비 시스템 을 설치했기 때문에 OP에 적합 할 것입니다 .
algal

1
@algal에 동의하십시오. 나는 한 /usr/local/bin/gls을 통해 설치 brew install coreutils하고, 저것은 지원 --time-style옵션을 선택합니다. 영업 실행할 수도 brew install coreutils --with-default-names초래할 것이다 /usr/local/bin/ls(다른 유틸리티 사이)가 설치되고, 또는 어쩌면 영업 이익에 수동으로 심볼릭 링크를 설정합니다 gls.
erik.weathers 오전

입력 할 때 무엇을 보십니까 which ls?
mschaef
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.