Quero fazer o ls
tempo de exibição em ISO
formato (formato militar). Como posso mudar esse comportamento?
No Linux, eu sabia que poderia forçar o ls a exibir o tempo em formato longo usando-nos, --full-time
mas isso não funciona no OS X.
Atualização: Eu sei que o formato usado pelo comando é baseado nas locale
configurações. O problema é que no OS XI não foi possível usar o truque de configuração LC_TIME=en_DK
.
command-line
unix
sorin
fonte
fonte
ls
parece não oferecer nada para formatar data e hora, além de alterar o fuso horário e classificar por data e hora em vez de alfa. developer.apple.com/library/mac/documentation/Darwin/Reference/…Respostas:
Se você instalar o gnu coreutils, o gnu ls estará disponível, o que será feito conforme necessário. Se você usa o brew como gerenciador de pacotes, é tão simples quanto:
fonte
brew install coreutils
resulta em/usr/local/bin/gls
instalação, então você precisa executar emgls
vez dels
.gls -l --time-syle="+%I"
(ou qualquer que seja ogdate
formato correto para ISO-8601).O comando interno do OS X
ls
não leva tempo para argumentos de formatação, mas ostat
comando usa seqüências de caracteres strftime para que você possa obter uma aproximação do que deseja fazendo:Ele
%FT%T
produz um registro de data e hora local ISO8601. Adicione um%z
se desejar um deslocamento UTC.Mas enquanto o registro de data e hora estiver correto, o restante apenas se aproxima do que você obteria com ls. Por exemplo,
ls -l
alinha adequadamente os campos em colunas, pode colorir a saída e, é claro, lista o conteúdo do diretório em vez de exigir que você passe todos os nomes de arquivos como argumentos. Você pode pelo menos reproduzir o alinhamento adequado canalizando a saídatr
para converter todos os espaços em guias:Como alternativa, acho que deve ser possível
ls -l
produzir um registro de data e hora ISO8601 definindo um código de idioma personalizado, mas ainda não o vi.fonte
ls -l --time-style=iso
funciona bem para mim.fonte
ls
sem perceber, através de um gerenciador de pacotes como o brew./usr/local/bin/gls
instalei viabrew install coreutils
, e isso suporta a--time-style
opção. O OP pode ter sido executado, obrew install coreutils --with-default-names
que resultaria na/usr/local/bin/ls
instalação (entre outros utilitários), ou talvez o OP configurasse um link simbólico manual paragls
.which ls
?