Salida de estadísticas en OSX


15

Quiero usar el statcomando para obtener información sobre un archivo. Hice esto:

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

Las líneas 3 y 4 son la salida que obtuve. Esto sucede cada vez que uso el statcomando. Mientras tanto, todos en Internet obtienen cosas 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

Probé esto en Terminal e iTerm 2 y en una nueva sesión. En la misma computadora portátil, me conecté a mi servidor CentOS y puse los mismos comandos. Funcionó perfectamente. Esto me lleva a creer que la aplicación de terminal no es el problema. Estoy en una MacBook Pro (Retina, 15 pulgadas, finales de 2013) con OS X Yosemite versión 10.10.1

¿Qué está pasando y cómo puedo solucionarlo?

Respuestas:


21

Usar la -xopción para statdebería proporcionarle resultados similares:

$ stat -x foo
  File: "foo"
  Size: 0            FileType: Regular File
  Mode: (0644/-rw-r--r--)         Uid: (  501/   Tyilo)  Gid: (    0/   wheel)
Device: 1,4   Inode: 8626874    Links: 1
Access: Mon Dec 22 06:17:54 2014
Modify: Mon Dec 22 06:17:54 2014
Change: Mon Dec 22 06:17:54 2014

Para que esto sea el predeterminado, puede crear un alias y guardarlo en ~/.bashrc:

alias stat="stat -x"

En zsh, por alguna razón states un shell incorporado y enmascara el comando stat real. ¿Alguna idea de cómo deshabilitar esto? (Tengo GNU coreutils instalado en mi macOS, pero zsh me impide usarlo).
Ahmet Alp Balkan

9

El statcomando que vio de "todos en Internet" es el de GNU coreutils , que se encuentra en Linux y Cygwin no integrados. También podría ser el de BusyBox , que se encuentra comúnmente en Linux incorporado. OSX tiene una statutilidad diferente (la de FreeBSD / NetBSD / OpenBSD), con un propósito similar pero diferentes opciones y un formato de salida diferente.

El statcomando no está estandarizado, por lo que no puede esperar que tenga el mismo comportamiento en todas las variantes de Unix. En la práctica, hay estadísticas de BSD y estadísticas de Linux, y muchas otras variantes no tienen un statcomando.


3
Tenga en cuenta que no hay Linux stat(a menos que se refiera a la Linuxllamada al sistema stat ()), solo GNU statde los coreutils de GNU.
Stéphane Chazelas

IRIX también tenía un statcomando mucho antes que los de GNU o BSD. zshtambién tenía un stattiempo incorporado (aunque no tanto) antes que los de GNU y BSD.
Stéphane Chazelas
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.