Eu quero usar o stat
comando para obter informações sobre um arquivo. Eu fiz isso:
Josephs-MacBook-Pro:Desktop Joseph$ echo 'hello' > info.txt
Josephs-MacBook-Pro:Desktop Joseph$ stat info.txt
16777220 21195549 -rw-r--r-- 1 Joseph staff 0 6 "Dec 21 20:45:31 2014" "Dec 21 20:45:30 2014" "Dec 21 20:45:30 2014" "Dec 21 20:45:30 2014" 4096 8 0 info.txt
A terceira e a quarta linhas são a saída que obtive. Isso acontece sempre que eu uso o stat
comando Enquanto isso, todos na internet recebem coisas como:
File: `index.htm'
Size: 17137 Blocks: 40 IO Block: 8192 regular file
Device: 8h/8d Inode: 23161443 Links: 1
Access: (0644/-rw-r--r--)
Uid: (17433/comphope) Gid: ( 32/ www)
Access: 2007-04-03 09:20:18.000000000 -0600
Modify: 2007-04-01 23:13:05.000000000 -0600
Change: 2007-04-02
16:36:21.000000000 -0600
Eu tentei isso no Terminal e no iTerm 2 e em uma nova sessão. No mesmo laptop, conectei-me ao meu servidor CentOS e coloquei os mesmos comandos. Funcionou perfeitamente. Isso me leva a acreditar que o aplicativo do terminal não é o problema. Estou em um MacBook Pro (Retina, 15 polegadas, final de 2013) com o OS X Yosemite versão 10.10.1
O que está acontecendo e como posso corrigir isso?
fonte
stat
é um shell embutido e mascara o comando stat real. Alguma idéia de como desativar isso? (Eu tenho o GNU coreutils instalado no meu macOS, mas o zsh me impede de usá-lo).O
stat
comando que você viu de "todos na Internet" é o do GNU coreutils , encontrado no Linux e Cygwin não-incorporado. Também pode ser o da BusyBox , que é comumente encontrada no Linux incorporado. O OSX possui umstat
utilitário diferente (o do FreeBSD / NetBSD / OpenBSD), com uma finalidade semelhante, mas com opções diferentes e um formato de saída diferente.O
stat
comando não é padronizado, então você não pode esperar que ele tenha o mesmo comportamento em todas as variantes do Unix. Na prática, há estatísticas BSD e Linux, e muitas outras variantes não têm umstat
comando.fonte
Linux
stat
(a menos que você esteja se referindo àLinux
chamada do sistema stat ()), apenas GNUstat
do coreutils do GNU.stat
comando muito antes dos GNU ou BSD.zsh
também tinha umstat
builtin muito tempo (embora não tão longo) antes dos GNU e BSD.