ls
표시 시간을 ISO
형식 (군사 형식)으로 만들고 싶습니다 . 이 동작을 어떻게 변경할 수 있습니까?
Linux에서는 ls를 사용하여 ls가 긴 형식으로 시간을 표시하도록 할 수 --full-time
있지만 OS X에서는 작동하지 않습니다.
업데이트 : 명령에서 사용하는 형식이 locale
설정을 기반으로한다는 것을 알고 있습니다. 문제는 OS XI에서 설정 트릭을 사용할 수 없다는 것 LC_TIME=en_DK
입니다.
답변
gnu coreutils를 설치하면 gnu ls를 사용할 수 있으며 필요에 따라 수행됩니다. brew를 패키지 관리자로 사용하는 경우 다음과 같이 간단합니다.
brew install coreutils
gls -l --time-style=full-iso
답변
OS X의 내장 ls
명령은 시간 형식 인수를 사용하지 않지만 stat
명령은 strftime 형식 문자열을 사용하므로 다음을 수행하여 원하는 것을 대략적으로 얻을 수 있습니다.
stat -l -t '%FT%T' *
는 %FT%T
ISO8601 지역의 타임 스탬프를 생성합니다. %z
UTC 오프셋을 원하면를 추가하십시오 .
그러나 타임 스탬프가 옳은 반면 나머지는 ls에서 얻는 것만 근사합니다. 예를 들어, ls -l
필드를 열에 올바르게 정렬하고 출력을 채색 할 수 있으며 물론 모든 파일 이름을 인수로 전달하지 않고 디렉토리 내용을 나열합니다. tr
모든 공간을 탭으로 변환하기 위해 출력을 파이핑하여 최소한 올바른 정렬을 재현 할 수 있습니다 .
stat -l -t '%F%T' * | tr ' ' \\t
또는 ls -l
사용자 지정 로캘을 정의하여 ISO8601 타임 스탬프를 생성 할 수 있어야한다고 생각 했지만 완료하지는 못했습니다.
답변
ls -l --time-style=iso
나를 위해 잘 작동합니다.