Saya ingin menggunakan stat
perintah untuk mendapatkan informasi tentang file. Saya melakukan ini:
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
Baris 3 dan 4 adalah output yang saya dapatkan. Ini terjadi setiap kali saya menggunakan stat
perintah. Sementara itu semua orang di internet mendapatkan hal-hal seperti:
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
Saya mencoba ini di Terminal dan iTerm 2 dan dalam sesi baru. Di laptop yang sama, saya terhubung ke server CentOS saya dan memasukkan perintah yang sama. Itu bekerja dengan sempurna. Ini membuat saya percaya bahwa aplikasi terminal bukanlah masalah. Saya menggunakan MacBook Pro (Retina, 15 inci, Akhir 2013) dengan OS X Yosemite versi 10.10.1
Apa yang sedang terjadi dan bagaimana cara memperbaikinya?
sumber
stat
shell-built in dan menutupi perintah stat yang sebenarnya. Ada ide cara menonaktifkan ini? (Saya memiliki GNU coreutils yang diinstal pada macOS saya, tetapi zsh mencegah saya menggunakannya).The
stat
perintah yang Anda lihat dari “semua orang di internet” adalah salah satu dari GNU coreutils , yang ditemukan di non-embedded Linux dan Cygwin. Bisa juga dari BusyBox , yang biasa ditemukan di embedded Linux. OSX memilikistat
utilitas yang berbeda (yang dari FreeBSD / NetBSD / OpenBSD), dengan tujuan yang sama tetapi opsi yang berbeda dan format output yang berbeda.The
stat
perintah tidak standar, sehingga Anda tidak bisa berharap untuk memiliki perilaku yang sama pada varian semua Unix. Dalam praktiknya, ada stat BSD, dan stat Linux, dan banyak varian lainnya tidak memilikistat
perintah.sumber
Linux
stat
(kecuali Anda merujuk keLinux
panggilan sistem stat), hanya GNUstat
dari GNU coreutils.stat
perintah jauh sebelum yang GNU atau BSD.zsh
juga memilikistat
builtin lama (meskipun tidak lebih lama) sebelum yang GNU dan BSD.