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 ใช้แบบฟอร์มข้อเสนอแนะด้านล่างเพื่อถามคำถามใด ๆ