Chcę użyć stat
polecenia, 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 stat
polecenia. 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ć?
źródło
stat
jest 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ć).stat
Poleceń, 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 innestat
narzędzie (z FreeBSD / NetBSD / OpenBSD), o podobnym celu, ale z różnymi opcjami i innym formatem wyjściowym.stat
Polecenie 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 mastat
polecenia.źródło
Linux
stat
(chyba, że masz na myśliLinux
wywołanie systemowe stat ()), tylko GNUstat
z GNU coreutils.stat
polecenie na długo przed GNU lub BSD.zsh
miał takżestat
wbudowane długo (choć nie tak długo) przed GNU i BSD.