ฉันกำลังดูหน้า man สำหรับrm
คำสั่งบน MacBook ของฉันและฉันสังเกตเห็นสิ่งต่อไปนี้:
- ความพยายามที่จะยกเลิกการลบไฟล์ที่มีชื่อ ขณะนี้ตัวเลือกนี้สามารถใช้เพื่อกู้คืนไฟล์ที่มี Whiteouts เท่านั้น
สิ่งนี้หมายความว่า? "Whiteout" คืออะไร?
ฉันกำลังดูหน้า man สำหรับrm
คำสั่งบน MacBook ของฉันและฉันสังเกตเห็นสิ่งต่อไปนี้:
- ความพยายามที่จะยกเลิกการลบไฟล์ที่มีชื่อ ขณะนี้ตัวเลือกนี้สามารถใช้เพื่อกู้คืนไฟล์ที่มี Whiteouts เท่านั้น
สิ่งนี้หมายความว่า? "Whiteout" คืออะไร?
คำตอบ:
Whiteout เป็นไฟล์เครื่องหมายพิเศษที่วางโดยระบบไฟล์ลำดับสูงกว่า "ดูผ่าน" (ที่ใช้ตำแหน่งจริงหนึ่งตำแหน่งขึ้นไปเป็นพื้นฐานสำหรับงานนำเสนอ) โดยเฉพาะอย่างยิ่งระบบไฟล์รวมเพื่อแสดงว่าไฟล์นั้นมีอยู่ในหนึ่งใน ตำแหน่งฐานถูกลบไปแล้วภายในระบบไฟล์เทียมแม้ว่ามันจะยังคงอยู่ที่อื่น การแสดงรายการระบบไฟล์รวมจะไม่แสดงไฟล์ที่มีการโหลดออกมา
มีชนิดพิเศษของไฟล์ที่เป็นตัวแทนของเหล่านี้อยู่ในประเพณี BSD ว่า MacOS มาจาก: MacOS ใช้st_mode
บิต 0160000 เพื่อทำเครื่องหมายพวกเขา การใช้ls -F
ไฟล์เหล่านั้นจะถูกทำเครื่องหมายด้วย%
เครื่องหมายและls -W
จะแสดงว่ามีอยู่ (ไม่เช่นนั้นโดยทั่วไปจะถูกละไว้จากรายชื่อ) ระบบยูเนี่ยนหลายแห่งยังสร้างไฟล์ปกติที่มีชื่อพิเศษเพื่อแสดง Whiteouts ในระบบที่ไม่รองรับไฟล์เหล่านั้น
ฉันไม่แน่ใจว่า macOS จะเปิดเผยสิ่งเหล่านี้ในทางใดทางหนึ่ง แต่ระบบอื่น ๆ ที่สืบทอดมาจาก BSD นั้นทำได้และเป็นไปได้ว่าไดรเวอร์ระบบไฟล์ภายนอกสามารถใช้งานได้
"Whiteout" เป็นคุณสมบัติของระบบไฟล์รวม
หากคุณมีลำดับชั้นของไฟล์ที่วางซ้อนกันโดยการเชื่อมต่อแบบยูเนี่ยนและไฟล์มีอยู่ในทั้งสองเลเยอร์ของลำดับชั้นของไฟล์ที่มองเห็นได้ "Whiteout" อาจถูกใช้เพื่อลบไฟล์ออกจากชั้นบนสุดในขณะที่รักษาอยู่ในชั้นล่าง (เช่นใช้ Tipp-ex)
rm
ยูทิลิตี้สามารถที่จะเอาเบลบอยและทำให้ไฟล์ปรากฏขึ้นอีกครั้ง (ตั้งแต่มันก็ไม่เคยถูกลบออกจากระบบไฟล์ที่ต่ำกว่า)