หนึ่งจะคืนค่าไฟล์ที่ถูกลบ แต่ยังคงเปิดอยู่โดยกระบวนการได้อย่างไร
โพสต์บล็อก"กู้คืนไฟล์จาก/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 ของกระบวนการ / ไฟล์ของฉัน)