-
bzip2 "ไฟล์ $"
สิ่งนี้จะทำงาน bzip2 บนชื่อไฟล์ที่บันทึกไว้ในตัวแปร "$file" bzip2 จะบีบอัดไฟล์เป็นไฟล์ใหม่ชื่อ $file.bz2.
-
stat -c %s "$file.bz2"
สิ่งนี้ทำงาน สถิติ ในการบีบอัดที่สร้างขึ้นใหม่ $file.bz2:
จาก สถิติผู้ชาย:
stat - แสดงสถานะไฟล์หรือระบบไฟล์
-c --format=รูปแบบ
ใช้รูปแบบที่ระบุแทนค่าเริ่มต้น
ขนาดรวม %s หน่วยเป็นไบต์
ดังนั้นสิ่งนี้ สถิติ คำสั่งจะคืนค่าขนาดไฟล์เป็นไบต์ของไฟล์ใหม่
-
$(some_command)
สิ่งนี้เรียกว่า การแทนที่คำสั่ง
Bash ดำเนินการขยายโดยดำเนินการคำสั่งในสภาพแวดล้อม subshell และแทนที่การแทนที่คำสั่งด้วยเอาต์พุตมาตรฐานของคำสั่ง
ดังนั้น, var=$(some_command) บันทึก เอาต์พุต ของ some_command ลงในตัวแปร วาร์.
เบ็ดเสร็จ:
compress_size_bzip2=$(bzip2 "$file" ; stat -c %s "$file.bz2")
สิ่งนี้ทำงาน bzip2 และ สถิติ ในเชลล์ย่อย ผลลัพธ์ของ subshell คือขนาดของไฟล์บีบอัดเป็นไบต์ ซึ่งจะถูกบันทึกในตัวแปร $compress_size_bzip2.
อย่างไรก็ตาม มีช่องว่างสำหรับการปรับปรุง:
คุณควรรวมคำสั่งใน subshell ด้วย &&, ดังนั้น สถิติ ทำงานเฉพาะเมื่อ bzip2 ประสบความสำเร็จ
หากคุณไม่ต้องการไฟล์บีบอัดคุณควรบอก bzip2 เพื่อบีบอัดเป็นเอาต์พุตมาตรฐานด้วย -ค ธงและการใช้งาน สุขา - ค เพื่อบอกขนาดของมัน:
compress_size_bzip2=$(bzip2 -c "$file" | wc -c)