สร้างไฟล์ชั่วคราว

Bash:
สร้างไฟล์ชั่วคราว

วิธีการ:

Bash มีคำสั่งในตัวที่เรียกว่า mktemp สำหรับสร้างไฟล์ชั่วคราวได้ง่ายดาย:

# สร้างไฟล์ชั่วคราว
temp_file=$(mktemp)

# ตรวจสอบไฟล์ชั่วคราวที่เราสร้างใหม่
echo "ไฟล์ชั่วคราวที่ถูกสร้างขึ้น: $temp_file"

# ใช้ไฟล์ชั่วคราว
echo "ข้อมูลบางอย่าง" > "$temp_file"

# อ่านคืน
cat "$temp_file"

# จัดการทำความสะอาด: ลบไฟล์เมื่อคุณเสร็จ
rm "$temp_file"

ผลลัพธ์:

ไฟล์ชั่วคราวที่ถูกสร้างขึ้น: /tmp/tmp.Iy5nv69sed
ข้อมูลบางอย่าง

ดำดิ่งลึก

ไฟล์ชั่วคราวมีอยู่ใน UNIX ตั้งแต่ยุคแรก ๆ ให้ผู้ใช้สามารถจัดการกับข้อมูลระหว่างขั้นได้โดยไม่ต้องทำความสะอาดด้วยมือ. ในการเขียนสคริปต์ Bash, mktemp คือการพัฒนาสมัยใหม่ มาพร้อมกับตัวเลือกสำหรับการสร้างทั้งไฟล์ (mktemp) และไดเรกทอรี่ (mktemp -d). คำสั่งนี้สร้างไฟล์ที่ไม่ซ้ำใครทุกครั้งที่เรียก, ซึ่งหลบเลี่ยงปัญหาการชนกันของไฟล์ที่เกิดขึ้นเมื่อมีการรันหลายๆ อินสแตนซ์ของสคริปต์หรือสคริปต์ที่แตกต่างกันในเวลาเดียวกัน

ก่อนหน้า mktemp, โปรแกรมเมอร์จะสร้างไฟล์ด้วยมือด้วยชื่อที่พวกเขาหวังว่าจะไม่ซ้ำกัน ปัญหาการชนกันเกิดขึ้นบ่อยครั้งส่งผลให้เกิดการสูญเสียข้อมูลและปัญหาด้านความปลอดภัย mktemp ช่วยป้องกันสิ่งนี้โดยการรับประกันว่าชื่อไฟล์นั้นไม่ซ้ำกันด้วยการผสมผสานรูปแบบที่คาดเดาได้และอักขระแบบสุ่ม. แตกต่างจากไฟล์ปกติ, ไฟล์ชั่วคราวเหล่านี้มีวัตถุประสงค์ให้ถูกลบหลังจากการใช้งาน, เพื่อคงระเบียบเรียบร้อยของระบบ

ทางเลือกอื่น ๆ ของ mktemp รวมถึงการใช้ /dev/shm สำหรับไฟล์ชั่วคราวในหน่วยความจำ, หรือการสร้างด้วยวันที่และหมายเลขกระบวนการ ($$), แต่วิธีการเหล่านี้มีความเสี่ยงมากขึ้นของการขัดแย้ง

ดูเพิ่มเติม

  • หน้าคู่มือสำหรับ mktemp: รัน man mktemp ใน Bash
  • คู่มือ GNU Coreutils: สำหรับรายละเอียดเกี่ยวกับคำสั่งมาตรฐานของ GNU/Linux
  • คู่มือสคริปต์ Bash ขั้นสูง: สำหรับเทคนิคการเขียนสคริปต์ที่ซับซ้อนและตัวอย่างเพิ่มเติม