-
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)