OSX 上的统计输出

OSX 上的统计输出

我想使用该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 服务器并输入相同的命令。它工作得很好。这让我相信终端应用程序不是问题。我使用的是 MacBook Pro(视网膜屏,15 英寸,2013 年末),操作系统为 OS X Yosemite 版本 10.10.1

这是怎么回事?我该如何解决这个问题?

答案1

使用-xfor 选项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"

答案2

您从“互联网上的每个人”看到的命令stat是来自GNU 核心工具,可在非嵌入式 Linux 和 Cygwin 上找到。它也可能是来自忙碌盒,常见于嵌入式 Linux 上。操作系统X有不同的stat效用(来自自由BSD/NetBSD/OpenBSD),具有类似的目的但不同的选项和不同的输出格式。

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

相关内容