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.