หนึ่งจะคืนค่าไฟล์ที่ถูกลบ แต่ยังคงเปิดอยู่โดยกระบวนการได้อย่างไร
โพสต์บล็อก"กู้คืนไฟล์จาก/proc"อธิบายวิธีการทำบน Linux:
- ใช้
lsof(เช่นlsof -c name) เพื่อค้นหาไฟล์ทั้งหมดที่เปิดอยู่สำหรับกระบวนการที่กำหนดไว้ในปัจจุบัน (ชื่อขึ้นต้นด้วยname) จากเอาต์พุตคุณเรียนรู้กระบวนการpidและตัวอธิบายไฟล์ (fd) ของไฟล์ที่คุณกำลังมองหา - ใช้
cp /proc/<pid>/fd/<fd>/ tmp / restore-file` เพื่อทำสำเนา
ขั้นตอนแรกทำงานแบบตัวต่อตัวบน OS X เช่นกัน อย่างไรก็ตามขั้นตอนที่ 2 ดูเหมือนซับซ้อนมากขึ้น มีคุณสมบัติที่คล้ายกันใน OS X หรือไม่?
(ฉันพยายาม/dev/fdแต่ในกรณีของฉันมันไม่มี PID / FD ของกระบวนการ / ไฟล์ของฉัน)