OSXでのstatの出力


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

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

私はこれをTerminalとiTerm 2で、そして新しいセッションで試しました。同じラップトップで、CentOSサーバーに接続し、同じコマンドを入力しました。完璧に機能しました。これは、端末アプリケーションが問題ではないと信じるようになります。OS X Yosemiteバージョン10.10.1を搭載したMacBook Pro(Retina、15インチ、2013年後半)を使用しています

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

回答:


21

-xオプションを使用すると、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でシェルが組み込まれ、実際のstatコマンドをマスクします。これを無効にする方法はありますか?(GNU coreutilsをmacOSにインストールしていますが、zshで使用できません)。
アフメットアルプバルカン

9

stat「インターネット上のすべての人」から見たコマンドは、GNU coreutilsからのコマンドです。これは、非組み込みLinuxおよびCygwinにあります。また、組み込みLinuxで一般的に使用されているBusyBoxのものもあります。OSXには異なる目的statFreeBSD / NetBSD / OpenBSDのもの)があり、目的は似ていますが、オプションと出力形式が異なります。

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


3
Linux statLinuxstat()システムコールを参照している場合を除き)存在しないことに注意してください。GNUcoreutilsのGNUだけstatです。
ステファンシャゼル

IRIX statには、GNUまたはBSDよりもずっと前にコマンドがありました。zshまた、statGNUおよびBSDの前に(それほど長くはありませんが)組み込みがありました。
ステファンシャゼラス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.