web-dev-qa-db-ja.com

OSXでのstatの出力

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

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

私はこれをターミナルとiTerm 2と新しいセッションで試しました。同じラップトップで、CentOSサーバーに接続し、同じコマンドを入力しました。それは完全に機能しました。これは、ターミナルアプリケーションが問題ではないことを私に信じさせます。 OS X Yosemiteバージョン10.10.1を搭載したMacBook Pro(Retina、15インチ、Late 2013)を使用しています。

何が起こっているのですか、どうすれば修正できますか?

15
jgleoj23

stat-xオプションを使用すると、同様の出力が得られます。

$ 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"
21
Tyilo

「インターネット上のすべての人」から見たstatコマンドは、組み込みでないLinuxとCygwinにある GNU coreutils からのものです。また、組み込みLinuxで一般的に見られる BusyBox からのものである可能性もあります。 [〜#〜] osx [〜#〜] は、同様の目的で、異なるstatユーティリティ( FreeBSD /NetBSD/OpenBSDからのもの)を持っていますただし、オプションと出力形式は異なります。

statコマンドは標準化されていないため、すべてのUnixバリアントで同じ動作が期待できません。実際には、BSD統計とLinux統計があり、他の多くのバリアントにはstatコマンドがありません。