Uscita di stat su OSX


15

Voglio usare il statcomando per ottenere informazioni su un file. L'ho fatto:

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

La terza e la quarta riga sono l'output che ho ottenuto. Questo succede ogni volta che utilizzo il statcomando. Nel frattempo tutti su Internet ricevono cose come:

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

Ho provato questo su Terminal e iTerm 2 e in una nuova sessione. Sullo stesso laptop, mi sono collegato al mio server CentOS e ho inserito gli stessi comandi. Ha funzionato perfettamente. Questo mi porta a credere che l'applicazione terminale non sia il problema. Sono su un MacBook Pro (Retina, 15 pollici, fine 2013) con OS X Yosemite versione 10.10.1

Cosa sta succedendo e come posso risolvere questo problema?

Risposte:


21

L'uso -xdell'opzione per statdovrebbe fornire un output simile:

$ 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

Per renderlo predefinito, puoi creare un alias e salvarlo in ~/.bashrc:

alias stat="stat -x"

Su zsh, per qualche motivo statè una shell integrata e maschera l'attuale comando stat. Qualche idea su come disabilitarlo? (Ho i coreutils GNU installati sul mio macOS, ma zsh mi impedisce di usarlo).
— Ahmet Alp Balkan,

9

Il statcomando che hai visto da "tutti su Internet" è quello di GNU coreutils , che si trova su Linux e Cygwin non embedded. Potrebbe anche essere quello di BusyBox , che si trova comunemente su Linux incorporato. OSX ha statun'utilità diversa (quella di FreeBSD / NetBSD / OpenBSD), con uno scopo simile ma opzioni diverse e un formato di output diverso.

Il statcomando non è standardizzato, quindi non puoi aspettarti che abbia lo stesso comportamento su tutte le varianti di Unix. In pratica, ci sono BSD stat e Linux stat e molte altre varianti non hanno un statcomando.


3
Nota che non c'è Linux stat(a meno che non ti riferisca alla Linuxchiamata di sistema stat ()), solo GNU statdai coreutils GNU.
— Stéphane Chazelas,

IRIX aveva anche un statcomando molto prima di quelli GNU o BSD. zshaveva anche un statbuiltin lungo (anche se non così lungo) prima di quelli GNU e BSD.
— Stéphane Chazelas,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.