OSX上的统计输出


15

我想使用stat命令来获取文件信息。我这样做:

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

第三行和第四行是我得到的输出。每当我使用stat命令时都会发生这种情况。同时,互联网上的每个人都会得到如下信息:

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

我在Terminal和iTerm 2以及新的会话中进行了尝试。在同一台笔记本电脑上,我连接到CentOS服务器并输入了相同的命令。效果很好。这使我相信终端应用程序不是问题。我正在使用OS X Yosemite 10.10.1版的MacBook Pro(15英寸,2013年末,视网膜)

这是怎么回事,我该如何解决?

Answers:


21

使用-x选项for stat应该会给您类似的输出:

$ 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

要将其设置为默认值,您可以创建一个别名并将其保存到~/.bashrc

alias stat="stat -x"

在zsh上,由于某种原因,它stat是内置的shell,并掩盖了实际的stat命令。任何想法如何禁用此?(我在macOS上安装了GNU coreutils,但是zsh阻止了我使用它)。
Ahmet Alp Balkan

9

stat您从“ Internet上的每个人”看到的命令是GNU coreutils的命令,该命令可在非嵌入式Linux和Cygwin中找到。它也可能是BusyBox中的一个,它通常在嵌入式Linux上找到。OSX具有不同的stat实用程序(来自FreeBSD / NetBSD / OpenBSD的实用程序),目的相似,但选项不同,输出格式也不同。

stat命令不是标准化的,因此您不能期望它在所有Unix变体上都具有相同的行为。实际上,有BSD统计信息和Linux统计信息,许多其他变体没有stat命令。


3
请注意,这里没有Linux stat(除非您引用Linuxstat()系统调用),只有statGNU coreutils中的GNU。
斯特凡Chazelas

IRIX也stat早于GNU或BSD的命令。在GNU和BSD之前,zsh也有很stat长的内置时间(尽管没有那么长)。
斯特凡Chazelas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.