Dane wyjściowe statystyki w OSX


15

Chcę użyć statpolecenia, aby uzyskać informacje o pliku. Ja to zrobiłem:

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

Trzeci i czwarty wiersz to wyjście, które otrzymałem. Dzieje się tak za każdym razem, gdy używam statpolecenia. Tymczasem każdy w Internecie dostaje takie rzeczy jak:

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

Próbowałem tego na terminalu i iTerm 2 i podczas nowej sesji. Na tym samym laptopie podłączyłem się do mojego serwera CentOS i wprowadziłem te same polecenia. Działa idealnie. To prowadzi mnie do wniosku, że aplikacja terminalowa nie stanowi problemu. Jestem na MacBooku Pro (Retina, 15-calowy, koniec 2013 r.) Z systemem OS X Yosemite w wersji 10.10.1

Co się dzieje i jak mogę to naprawić?

Odpowiedzi:


21

Użycie -xopcji dla statpowinno dać podobne wyniki:

$ 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

Aby ustawić to jako domyślne, możesz utworzyć alias i zapisać go w ~/.bashrc:

alias stat="stat -x"

Zsh z jakiegoś powodu statjest wbudowany w powłokę i maskuje właściwe polecenie stat. Wszelkie pomysły, jak to wyłączyć? (Mam jądra GNU zainstalowane na moim systemie macOS, ale zsh nie pozwala mi go używać).
Ahmet Alp Balkan,

9

statPoleceń, które widziałem z „każdego w internecie” jest jednym z coreutils GNU , który znajduje się na non-Embedded Linux i Cygwin. Może to być również ten z BusyBox , który jest powszechnie spotykany we wbudowanym systemie Linux. OSX ma inne statnarzędzie (z FreeBSD / NetBSD / OpenBSD), o podobnym celu, ale z różnymi opcjami i innym formatem wyjściowym.

statPolecenie nie jest znormalizowany, więc nie można oczekiwać, że mają takie samo zachowanie na wszystkie warianty Unix. W praktyce istnieje statystyka BSD i statystyka Linuksa, a wiele innych wariantów nie ma statpolecenia.


3
Zauważ, że nie ma Linux stat(chyba, że ​​masz na myśli Linuxwywołanie systemowe stat ()), tylko GNU statz GNU coreutils.
Stéphane Chazelas,

IRIX miał także statpolecenie na długo przed GNU lub BSD. zshmiał także statwbudowane długo (choć nie tak długo) przed GNU i BSD.
Stéphane Chazelas
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.