A day with Scandale - Harmonie Collection - Spring / Summer 2013
สารบัญ:
ในบางสถานการณ์คุณอาจต้องการตัดทอน (ว่าง) ไฟล์ที่มีอยู่ให้มีความยาวเป็นศูนย์ คำง่ายๆการตัดไฟล์หมายถึงการลบเนื้อหาไฟล์โดยไม่ลบไฟล์
การตัดไฟล์เป็นวิธีที่รวดเร็วและง่ายกว่าการลบไฟล์สร้างไฟล์ใหม่และตั้งค่าสิทธิ์และความเป็นเจ้าของที่ถูกต้อง นอกจากนี้หากไฟล์ถูกเปิดโดยกระบวนการการลบไฟล์อาจทำให้โปรแกรมที่ใช้ทำงานผิดปกติ
บทช่วยสอนนี้อธิบายวิธีตัดทอนไฟล์ให้เป็นขนาดศูนย์ในระบบ Linux โดยใช้การเปลี่ยนเส้นทางเชลล์และคำสั่ง
truncate
การเปลี่ยนเส้นทางเชลล์
วิธีที่ง่ายและใช้มากที่สุดในการตัดไฟล์คือการใช้โอเปอเรเตอร์การเปลี่ยนเส้นทางของเชลล์
รูปแบบทั่วไปสำหรับการตัดไฟล์โดยใช้การเปลี่ยนเส้นทางคือ:
: > filename
ลองแบ่งคำสั่ง:
- เครื่องหมายจุดคู่
:
หมายถึงtrue
และไม่สร้างเอาต์พุตตัวดำเนินการเปลี่ยนทิศทาง>
เปลี่ยนทิศทางเอาต์พุตของคำสั่งก่อนหน้าไปยังไฟล์ที่กำหนดfilename
ไฟล์ไฟล์ที่คุณต้องการตัดทอน
หากไฟล์มีอยู่ไฟล์จะถูกตัดเหลือศูนย์ มิฉะนั้นไฟล์จะถูกสร้างขึ้น
แทนที่จะเป็น
:
ยังสามารถใช้คำสั่งอื่นที่ไม่สร้างเอาต์พุต
นี่คือตัวอย่างของการใช้คำสั่ง
cat
เพื่อส่งออกเนื้อหาของอุปกรณ์
/dev/null
ซึ่งส่งกลับเฉพาะอักขระสิ้นสุดไฟล์:
cat /dev/null > filename
คำสั่งอื่นที่สามารถใช้ได้คือ
echo
ตัวเลือก
-n
บอกให้
echo
ไม่ต่อท้ายบรรทัดใหม่:
echo -n > filename
บนเชลล์ที่ทันสมัยส่วนใหญ่เช่น Bash หรือ Zsh คุณสามารถละเว้นคำสั่งก่อนที่จะเปลี่ยนสัญลักษณ์และใช้:
> filename
เพื่อให้สามารถตัดไฟล์ได้คุณต้องมีสิทธิ์เขียนไฟล์ โดยปกติแล้วคุณจะใช้
sudo
สำหรับสิ่งนี้ แต่สิทธิ์ของรูทที่ยกระดับจะไม่นำไปใช้กับการเปลี่ยนเส้นทาง นี่คือตัวอย่าง:
sudo: > /var/log/syslog
bash: /var/log/syslog: Permission denied
มีวิธีแก้ไขปัญหาต่าง ๆ ที่อนุญาตการเปลี่ยนเส้นทางด้วย
sudo
ตัวเลือกแรกสามารถเรียกใช้เชลล์ใหม่ด้วย sudo และดำเนินการคำสั่งภายในเชลล์นั้นโดยใช้แฟ
-c
:
sudo sh -c '> filename'
ตัวเลือกอื่นคือการไพพ์เอาต์พุตไปยังคำสั่ง
tee
, ยกระดับสิทธิ์
tee
ด้วย
sudo
และเขียนเอาต์พุตว่างลงในไฟล์ที่กำหนด:
truncate
คำสั่ง
truncate
เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งที่ให้คุณย่อขนาดหรือขยายขนาดไฟล์ให้มีขนาดที่กำหนด
ไวยากรณ์ทั่วไปสำหรับการตัดไฟล์เป็นขนาดศูนย์ด้วยคำสั่ง
truncate
มีดังนี้:
truncate -s 0 filename
อ็อพชัน
-s 0
ตั้งค่าขนาดไฟล์เป็นศูนย์
ตัวอย่างเช่นหากต้องการล้างบันทึกการเข้าถึง Nginx คุณจะต้อง:
sudo truncate -s 0 /var/log/nginx/access.log
ล้างไฟล์บันทึกทั้งหมด
เมื่อเวลาผ่านไปดิสก์ไดรฟ์ของคุณอาจรกด้วยไฟล์บันทึกขนาดใหญ่จำนวนมากที่ใช้พื้นที่ดิสก์จำนวนมาก
คำสั่งต่อไปนี้จะว่างไฟล์ที่ลงท้ายด้วย“.log” ภายใต้ไดเรกทอรี
/var/log
:
sudo truncate -s 0 /var/log/**/*.log
ตัวเลือกที่ดีกว่าคือการหมุนบีบอัดและลบไฟล์บันทึกด้วยเครื่องมือ
logrotate
ข้อสรุป
หากต้องการตัดไฟล์ใน Linux ให้ใช้โอเปอเรเตอร์การเปลี่ยนเส้นทาง
>
ตามด้วยชื่อไฟล์
Microsoft วาง Facebook ลงใน Outlook
โปรแกรมอีเมลของ Microsoft ช่วยให้ผู้ใช้สามารถดูการอัปเดตสถานะ Facebook ของผู้ติดต่อ 'รูปภาพและโพสต์บนผนังได้แบบเรียลไทม์
Wi-Fi วาง Windblown หมู่เกาะแคลิฟอร์เนียบนเว็บ
เกาะ Farallon ปิดซานฟรานซิสโกมีบรอดแบนด์แล้วด้วย Wi-Fi แบบจุดต่อจุด ทีมงานที่แข็งแกร่งของนักชีววิทยาที่ประจำการอยู่ที่หมู่เกาะ Farallon ซึ่งเป็นกลุ่มชนเผ่านอกชายฝั่งในมหาสมุทรแปซิฟิกทางตะวันตกของซานฟรานซิสโกประสบปัญหาความไม่สะดวกมากมาย
Viewsonic วาง Nvidia ภายใน
Viewsonic เปิดตัวโปรเซสเซอร์ Tegra 3 ในจอแสดงผลที่มีหน้าจอสัมผัส Windows 8