ค้นหาเว็บไซต์

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

ในตอนนี้ ในบทความนี้ เราได้กล่าวถึงวิธีการล้างหรือล้างเนื้อหาไฟล์หลายวิธีโดยใช้ยูทิลิตีบรรทัดคำสั่งง่ายๆ และกลไกการเปลี่ยนเส้นทางของเชลล์

วิธีเหล่านี้อาจไม่ใช่วิธีเดียวที่ใช้ได้จริงในการดำเนินการนี้ ดังนั้นคุณจึงสามารถบอกเราเกี่ยวกับวิธีการอื่นๆ ที่ไม่ได้กล่าวถึงในคู่มือนี้ผ่านทางส่วนคำติชมด้านล่าง