jgl*_*j23 19 osx stat portability
我想使用该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
Run Code Online (Sandbox Code Playgroud)
第 3 行和第 4 行是我得到的输出。每当我使用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
Run Code Online (Sandbox Code Playgroud)
我在终端和 iTerm 2 以及一个新的会话中尝试了这个。在同一台笔记本电脑上,我连接到我的 CentOS 服务器并输入相同的命令。它工作得很好。这让我相信终端应用程序不是问题。我使用的是装有 OS X Yosemite 版本 10.10.1 的 MacBook Pro(Retina,15 英寸,2013 年末)
这是怎么回事,我该如何解决?
Tyi*_*ilo 27
使用-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
Run Code Online (Sandbox Code Playgroud)
要使其成为默认值,您可以创建一个别名并将其保存到~/.bashrc:
alias stat="stat -x"
Run Code Online (Sandbox Code Playgroud)
stat您从“互联网上的每个人”看到的命令是来自GNU coreutils的命令,该命令可在非嵌入式 Linux 和 Cygwin 上找到。它也可能是BusyBox 中的一个,它在嵌入式 Linux 上很常见。OSX有一个不同的stat实用程序(来自FreeBSD /NetBSD/OpenBSD 的那个),具有相似的目的但不同的选项和不同的输出格式。
该stat命令未标准化,因此您不能指望它在所有 Unix 变体上都具有相同的行为。实际上,有 BSD stat 和 Linux stat,许多其他变体没有stat命令。
| 归档时间: |
|
| 查看次数: |
16876 次 |
| 最近记录: |