เอาต์พุตของ stat บน OSX


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 ของฉันและใส่คำสั่งเดียวกัน มันทำงานได้อย่างสมบูรณ์ สิ่งนี้ทำให้ฉันเชื่อว่าแอปพลิเคชันเทอร์มินัลไม่ใช่ปัญหา ฉันใช้ MacBook Pro (Retina ขนาด 15 นิ้วปลายปี 2013) พร้อม OS X Yosemite เวอร์ชั่น 10.10.1

เกิดอะไรขึ้นและฉันจะแก้ไขได้อย่างไร

คำตอบ:


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 จริง ความคิดใด ๆ วิธีการปิดการใช้งานนี้ (ฉันมี coreutils ของ GNU ติดตั้งอยู่ใน macOS ของฉัน แต่ zsh ป้องกันไม่ให้ฉันใช้งาน)
Ahmet Alp Balkan

9

statคำสั่งที่คุณเห็นจาก“ทุกคนบนอินเทอร์เน็ต” เป็นหนึ่งจากcoreutils GNUซึ่งพบที่ไม่ฝัง Linux และ Cygwin มันอาจเป็นหนึ่งในBusyBoxซึ่งพบได้ทั่วไปบน Linux ที่ฝังตัว OSXมีstatยูทิลิตี้ที่แตกต่างกัน(อันหนึ่งจากFreeBSD / NetBSD / OpenBSD) โดยมีวัตถุประสงค์ที่คล้ายกัน แต่มีตัวเลือกที่แตกต่างกันและรูปแบบเอาต์พุตที่แตกต่างกัน

statคำสั่งไม่ได้มาตรฐานดังนั้นคุณจึงไม่สามารถคาดหวังที่จะมีพฤติกรรมเดียวกันในทุกตัวแปร Unix ในทางปฏิบัติมี BSD stat และ Linux stat และตัวแปรอื่น ๆ อีกมากมายไม่มีstatคำสั่ง


3
โปรดทราบว่าไม่มีLinux stat(เว้นแต่ว่าคุณกำลังอ้างถึงการLinuxเรียกของระบบ stat ()) เพียง GNU statจาก coreutils ของ GNU
Stéphane Chazelas

IRIX มีstatคำสั่งยาวก่อน GNU หรือ BSD zshยังมีstatbuiltin ยาว (แต่ไม่นาน) ก่อน GNU และ BSD
Stéphane Chazelas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.