5 วิธีในการล้างหรือลบเนื้อหาไฟล์ขนาดใหญ่ใน Linux
ในบางครั้ง ขณะจัดการกับไฟล์ในเทอร์มินัล Linux คุณอาจต้องการล้างเนื้อหาของไฟล์โดยไม่จำเป็นต้องเปิดไฟล์โดยใช้โปรแกรมแก้ไขบรรทัดคำสั่ง Linux สิ่งนี้จะเกิดขึ้นได้อย่างไร?
ในบทความนี้ เราจะอธิบายวิธีการล้างเนื้อหาไฟล์ด้วยวิธีต่างๆ หลายวิธีโดยใช้คำสั่งที่มีประโยชน์
ข้อควรระวัง: ก่อนที่เราจะดูวิธีต่างๆ ต่อไป โปรดทราบว่าเนื่องจากใน Linux ทุกอย่างเป็นไฟล์ คุณต้องตรวจสอบให้แน่ใจเสมอว่าไฟล์ที่คุณกำลังล้างไม่ใช่ไฟล์ผู้ใช้หรือระบบที่สำคัญ . การล้างเนื้อหาของระบบที่สำคัญหรือไฟล์การกำหนดค่าอาจทำให้เกิดข้อผิดพลาดร้ายแรงหรือความล้มเหลวของแอปพลิเคชัน/ระบบ
ด้วยเหตุนี้ ด้านล่างนี้จึงเป็นวิธีการล้างเนื้อหาไฟล์จากบรรทัดคำสั่ง
ข้อสำคัญ: เพื่อวัตถุประสงค์ของบทความนี้ เราได้ใช้ไฟล์ access.log
ในตัวอย่างต่อไปนี้
1. ล้างเนื้อหาไฟล์โดยการเปลี่ยนเส้นทางเป็น Null
วิธีที่ง่ายที่สุดในการล้างหรือทำให้เนื้อหาไฟล์ว่างเปล่าโดยใช้การเปลี่ยนเส้นทางเชลล์ null
(วัตถุที่ไม่มีอยู่จริง) ไปยังไฟล์ดังต่อไปนี้:
> access.log
2. ไฟล์ว่างโดยใช้การเปลี่ยนเส้นทางคำสั่ง 'true'
ที่นี่เราจะใช้สัญลักษณ์ :
เป็นคำสั่งเชลล์ในตัวที่มีสาระสำคัญเทียบเท่ากับคำสั่ง true
และสามารถใช้เป็น no-op (ไม่มีการดำเนินการ) .
อีกวิธีหนึ่งคือการเปลี่ยนเส้นทางเอาต์พุตของคำสั่งในตัว :
หรือ true
ไปยังไฟล์ดังนี้:
: > access.log
OR
true > access.log
3. ล้างไฟล์โดยใช้ยูทิลิตี้ cat/cp/dd พร้อม /dev/null
ใน Linux อุปกรณ์ null
ถูกใช้โดยทั่วไปเพื่อทิ้งสตรีมเอาต์พุตที่ไม่ต้องการของกระบวนการ หรือเป็นไฟล์ว่างที่เหมาะสมสำหรับสตรีมอินพุต โดยปกติจะทำโดยกลไกการเปลี่ยนเส้นทาง
และไฟล์อุปกรณ์ /dev/null
จึงเป็นไฟล์พิเศษที่เขียน (ลบ) อินพุตใด ๆ ที่ส่งไปหรือเอาต์พุตจะเหมือนกับไฟล์เปล่า
นอกจากนี้ คุณยังสามารถล้างเนื้อหาของไฟล์ได้โดยเปลี่ยนเส้นทางเอาต์พุตของ /dev/null
ไปยังไฟล์ (ไฟล์) เป็นอินพุตโดยใช้คำสั่ง cat:
cat /dev/null > access.log
ต่อไปเราจะใช้คำสั่ง cp เพื่อเว้นว่างเนื้อหาไฟล์ดังที่แสดง
cp /dev/null access.log
ในคำสั่ง dd ต่อไปนี้ if
หมายถึงไฟล์อินพุต และ of
หมายถึงไฟล์เอาต์พุต
dd if=/dev/null of=access.log
4. ล้างไฟล์โดยใช้คำสั่ง echo
ที่นี่ คุณสามารถใช้คำสั่ง echo กับสตริงว่างและเปลี่ยนเส้นทางไปยังไฟล์ได้ดังนี้:
echo "" > access.log
OR
echo > access.log
หมายเหตุ: คุณควรจำไว้ว่าสตริงว่างไม่เหมือนกับค่าว่าง สตริงเป็นวัตถุอยู่แล้วเนื่องจากอาจว่างเปล่าในขณะที่ค่าว่างหมายถึงการไม่มีอยู่จริงของวัตถุ
ด้วยเหตุนี้ เมื่อคุณเปลี่ยนเส้นทางออกจากคำสั่ง echo ด้านบนไปยังไฟล์ และดูเนื้อหาไฟล์โดยใช้คำสั่ง cat จะพิมพ์บรรทัดว่าง (สตริงว่าง)
หากต้องการส่งเอาต์พุตค่าว่างไปยังไฟล์ ให้ใช้แฟล็ก -n
ซึ่งบอก echo ว่าอย่าส่งออกบรรทัดใหม่ต่อท้ายที่นำไปสู่บรรทัดว่างที่สร้างในคำสั่งก่อนหน้า
echo -n "" > access.log
5. ไฟล์ว่างโดยใช้คำสั่งตัดทอน
คำสั่ง ตัดทอน ช่วยย่อหรือขยายขนาดของไฟล์ให้เป็นขนาดที่กำหนด
คุณสามารถใช้งานได้ด้วยตัวเลือก -s
ที่ระบุขนาดไฟล์ หากต้องการล้างเนื้อหาไฟล์ ให้ใช้ขนาด 0 (ศูนย์) เช่นเดียวกับในคำสั่งถัดไป:
truncate -s 0 access.log
ในตอนนี้ ในบทความนี้ เราได้กล่าวถึงวิธีการล้างหรือล้างเนื้อหาไฟล์หลายวิธีโดยใช้ยูทิลิตีบรรทัดคำสั่งง่ายๆ และกลไกการเปลี่ยนเส้นทางของเชลล์
วิธีเหล่านี้อาจไม่ใช่วิธีเดียวที่ใช้ได้จริงในการดำเนินการนี้ ดังนั้นคุณจึงสามารถบอกเราเกี่ยวกับวิธีการอื่นๆ ที่ไม่ได้กล่าวถึงในคู่มือนี้ผ่านทางส่วนคำติชมด้านล่าง