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.