ค้นหาเว็บไซต์

5 ตัวอย่างคำสั่ง 'stat' สำหรับมือใหม่ Linux


คำสั่ง stat เป็นโปรแกรมอรรถประโยชน์ที่มีประโยชน์สำหรับการดูไฟล์หรือสถานะของระบบไฟล์ จะดึงข้อมูลเช่นประเภทไฟล์ สิทธิ์การเข้าถึงในรูปแบบฐานแปดและมนุษย์สามารถอ่านได้ สตริงบริบทความปลอดภัยของ SELinux; เวลาที่เกิดไฟล์ การเข้าถึงล่าสุด การแก้ไขข้อมูลล่าสุด การเปลี่ยนแปลงสถานะล่าสุดในรูปแบบที่มนุษย์สามารถอ่านได้และเป็นวินาทีนับตั้งแต่ Epoch และอื่นๆ อีกมากมาย

มีตัวเลือกในการระบุรูปแบบที่กำหนดเองแทนค่าเริ่มต้นสำหรับการแสดงข้อมูล ในคู่มือนี้ เราจะดูตัวอย่างคำสั่ง stat ห้าตัวอย่างสำหรับมือใหม่ Linux

ตรวจสอบสถานะไฟล์ Linux

1. วิธีที่ง่ายที่สุดในการใช้ stat คือการจัดเตรียมไฟล์เป็นอาร์กิวเมนต์ คำสั่งต่อไปนี้จะแสดงขนาด บล็อก บล็อก IO ประเภทไฟล์ ค่าไอโหนด จำนวนลิงก์ และข้อมูลเพิ่มเติมมากมายเกี่ยวกับไฟล์ /var/log/syslog ดังที่แสดงในภาพหน้าจอ:

$ stat /var/log/syslog

File: '/var/log/syslog'
  Size: 26572     	Blocks: 56         IO Block: 4096   regular file
Device: 80ah/2058d	Inode: 8129076     Links: 1
Access: (0640/-rw-r-----)  Uid: (  104/  syslog)   Gid: (    4/     adm)
Access: 2018-04-06 09:42:10.987615337 +0530
Modify: 2018-04-06 11:09:29.756650149 +0530
Change: 2018-04-06 11:09:29.756650149 +0530
 Birth: -

ตรวจสอบสถานะระบบไฟล์

2. ในตัวอย่างก่อนหน้านี้ คำสั่ง stat ถือว่าไฟล์อินพุตเป็นไฟล์ปกติ อย่างไรก็ตาม หากต้องการแสดงสถานะของระบบไฟล์แทนสถานะไฟล์ ให้ใช้ตัวเลือก -f

$ stat -f /var/log/syslog

File: "/var/log/syslog"
    ID: ce97e63d2201c974 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 84769790   Free: 16012830   Available: 11700997
Inodes: Total: 21544960   Free: 20995459

คุณยังสามารถระบุไดเร็กทอรี/ระบบไฟล์เป็นอาร์กิวเมนต์ได้ตามที่แสดง

$ stat -f /

File: "/"
    ID: ce97e63d2201c974 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 84769790   Free: 16056471   Available: 11744638
Inodes: Total: 21544960   Free: 21005263

เปิดใช้งานการติดตามลิงก์สัญลักษณ์

3. เนื่องจาก Linux รองรับลิงก์ (สัญลักษณ์ และ ฮาร์ดลิงก์) บางไฟล์อาจมีลิงก์ตั้งแต่หนึ่งลิงก์ขึ้นไป หรืออาจมีอยู่ใน ระบบไฟล์

หากต้องการเปิดใช้งานสถิติเพื่อติดตามลิงก์ ให้ใช้แฟล็ก -L ตามที่แสดง

$ stat -L /

 File: '/'
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 80ah/2058d	Inode: 2           Links: 25
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-04-09 10:55:55.119150525 +0530
Modify: 2018-02-20 11:15:54.462893167 +0530
Change: 2018-02-20 11:15:54.462893167 +0530
 Birth: -

ใช้รูปแบบที่กำหนดเองเพื่อแสดงข้อมูล

4. สถิติ ยังช่วยให้คุณใช้รูปแบบเฉพาะหรือแบบกำหนดเองแทนค่าเริ่มต้นได้ ธง -c ใช้เพื่อระบุรูปแบบที่ใช้ โดยจะพิมพ์บรรทัดใหม่หลังจากใช้ลำดับรูปแบบแต่ละครั้ง

หรือคุณสามารถใช้ตัวเลือก --printf ซึ่งเปิดใช้งานการตีความลำดับการหลีกของแบ็กสแลช และปิดการพิมพ์การขึ้นบรรทัดใหม่ต่อท้าย คุณต้องใช้ \n ในรูปแบบเพื่อพิมพ์ขึ้นบรรทัดใหม่ เป็นต้น

stat --printf='%U\n%G\n%C\n%z\n' /var/log/secure

ความหมายของลำดับรูปแบบของไฟล์ที่ใช้ในตัวอย่างข้างต้น:

  • %U – ชื่อผู้ใช้ของเจ้าของ
  • %G – ชื่อกลุ่มของเจ้าของ
  • %C – สตริงบริบทความปลอดภัยของ SELinux
  • %z – เวลาที่เปลี่ยนสถานะครั้งล่าสุด มนุษย์สามารถอ่านได้

5. นี่คือตัวอย่างที่แสดงการใช้ลำดับรูปแบบที่ยอมรับสำหรับระบบไฟล์

stat --printf='%n\n%a\n%b\n' /

ความหมายของลำดับรูปแบบที่ใช้ในคำสั่งข้างต้น

  • %n – แสดงชื่อไฟล์
  • %a – พิมพ์บล็อกฟรีสำหรับผู้ที่ไม่ใช่ผู้ใช้ระดับสูง
  • %b – ส่งออกบล็อกข้อมูลทั้งหมดในระบบไฟล์

พิมพ์ข้อมูลในรูปแบบสั้น ๆ

6. ตัวเลือก -t สามารถใช้เพื่อพิมพ์ข้อมูลในรูปแบบสั้น

$ stat -t /var/log/syslog

/var/log/syslog 12760 32 81a0 104 4 80a 8129076 1 0 0 1523251873 1523256421 1523256421 0 4096

ตามหมายเหตุสุดท้าย เชลล์ของคุณอาจมีเวอร์ชันสถิติของตัวเอง โปรดดูรายละเอียดเกี่ยวกับตัวเลือกที่เชลล์ของคุณรองรับในเอกสารประกอบของเชลล์ของคุณ หากต้องการดูลำดับรูปแบบเอาต์พุตที่ยอมรับทั้งหมด โปรดดูที่หน้าคู่มือสถิติ

man stat 

ในบทความนี้ เราได้อธิบายตัวอย่างคำสั่ง stat ห้าตัวอย่างสำหรับมือใหม่ Linux ใช้แบบฟอร์มข้อเสนอแนะด้านล่างเพื่อถามคำถามใด ๆ