ผมมีประสบการณ์กับ rm -rf มาสองครั้งแล้วครับ วันนี้ก็เป็นอีกวันหนึ่งที่เกือบตายเพราะคำสั่งนี้
ครั้งแรก ระหว่างทำ Senior Project บน High Performance Cluster กับ Root Permission เพื่อนผมมือไวไปหน่อยครับ อยู่ที่ Root Dir เลย
#rm -rf . [enter]
Front-end เดี้ยงไปเลยครับ T.T ผลก็คือ ต้องจัดการติดตั้ง Cluster ใหม่ทั้งเซต เพราะว่า ตัวลูกทีเหลือควบคุมจาก Front-end ผ่านโปรแกรมจัดการคลัสเตอร์ Senior-Project ผมก็ล่องลอยไปด้วย โชคดี ที่ Backup ยังหลงเหลืออยู่บ้าง อย่างน้อย ก็ทำใหม่ในช่วงระยะเวลา 2 สัปดาห์
ครั้งที่สอง วันนี้ครับ ระหว่างปรับระบบนิดหน่อย แล้วก็ตามแก้ ระบบเมล์ ที่มีปัญหา แล้วแก้ยังไม่หายขาดเสียที ระหว่างนั้นก็เห็น ไดเรกทอรี่เก่าๆที่ Backup ไว้ชั่วคราวเพื่อแก้ไข Code ก็เลยจะลบครับ
/var/www/vhcs2/ # rm -rf gui [enter]
โอ้… ซีดเลยครับ… เพราะว่ามันเป็น Module Web Control Panel ที่ User เอาไว้เข้าใช้งาน … จะลบ gui2 ไปเผลอลบ content หลักซะ โชคดีบนความโชคร้ายคือ ผมเพิ่งยัดตัว VHCS GUI นี้ ลงใน SVN Repository เมื่อราวๆเดือนก่อน เพราะว่า แก้ไขโปรแกรมเพิ่ม แล้วก็ Update เรื่อยมาจนกระทั้ง สัปดาห์ที่ผ่านมา เลยสั่ง checkout ออกมาจาก svn ใหม่
แต่ ก็ยังไม่แน่ใจอยู่ดีว่ามันสมบูรณ์มั๊ย เพราะตอน checkin file เหมือนคุ้นๆว่าจะ remove ไฟล์พวก binary ออกไป
มาเล่าสู่กันฟังครับ T.T
แถมประเด็นที่อยากรู้ เผื่อใครทราบ คือ
- มีวิธีเปรียบเทียบไฟล์ระหว่าง 2 directory มั๊ยครับ ว่าไฟล์ไหนแตกต่างกันบ้าง เอาแค่ list รายชื่อนะครับ ยังไม่ต้องเอา diff ข้อมูลข้างในไฟล์
- ปกติเวลาลบไฟล์บน linux มีหนทางกู้ไฟล์ง่ายๆบ้างมั๊ยครับ
pook
2
เคยเกือบตายหลายครั้งเหมอืนกันครับ สั่งเพลินแล้วกดไวไปหน่อย
ปุ๊ก
kke
3
หน้ามืดมาแล้วครับ จำจนตาย คำสั่งนี้เลิกใช้
ต้องระบุตลอดว่า rm -Rf /path/path
Jua
4
เคยใช้คำสั่งนี้แล้วพิมพ์ path ผิดเหมือนกันครับ ได้ลงเครื่องใหม่เลย
ใช่เลยครับ ทำให้เป็นนิสัยว่าต้องระบุ path เสมอๆ ครับ
หมายเหตุ: ขอย้ายหมวดนิดนะครับ
ถ้าจริงจังก็ไปดูกระทู้นี้เลยครับ
http://www.linuxquestions.org/questions/programming-9/safety-script-prevent-accidental-rm-rf-495005/
ความคิดมันเคยลอยเข้ามาในหัวครับ … แต่ไม่เคยเกิดเพราะยังไม่ได้นั่งหน้า unix ทั้งวัน …
เคยแต่ windows ลบอะไรเร็วไปบ้าง … หลังๆไม่กด shift delete แล้วครับ … นั่ง clear ถังขยะเอา …
ว่าแต่ unix ไม่มีถังขยะกับเค้าหรอครับ …
ไม่มีครับ ระบบไฟล์มันต่างกันกับ windows ครับ
พวก X-Windows จะมีถังขยะ ให้ครับ
แต่บน command ไม่มี
ถ้ารู้ว่าตัวเองเพิ่งลบ file ที่สำคัญในเครื่องออกไป ละก็ ก่อนอืนให้ปิดเครื่องก่อนเลยครับ ยิ่งปิดเร็วยิ่งมีโอกาสในการกู้ข้อมูลที่โดนลบไปกลับมาได้ เกือบ100%
แนะนำให้ ดึงปลักไฟออกเลยครับ เพราะหากเราสั่งshutdown ก่อนมันอาจไปเขียนข้อมูลทับลงไปบนเนื้อจานHDD ตรงส่วนที่เก็บ File นั้นๆ ของเรา อาจทำให้กู้กลับมาแล้วไม่ครบ100% เพราะข้อมูลถูกเขียนทับไปแล้วนั่นเองครับ
เนื่องจาก rm หรือ delete ใน windows เป็นการลบ file โดยลบที่ ตัวชี้ตำแหน่งที่เก็บ fileจริงบนจานแม่เหล็กของHDD มันไม่ได้ไปเขียนbit ทับลงไปแทนที่ในตำแหน่งที่เก็บ fileจริงบนจานแม่เหล็กของ HDD
จากนั้นก้อ ใช้ Hdd อีก ตัว ต่อเข้าไป แล้ว load แผ่น live cd ของ linux ที่มี คำสั่ง dd มาทำการ copy แบบ bit by bitของ HDD ลูกเก่า ออกมาที่ลูกใหม่แล้ว ทำการ grep - อาไรซักอย่างจำไมไ่ด้แล้ว ^^" เพื่อหา ร่องรอยของ fileที่โดนลบไปบนจานแม่เหล็กของHDD ออกมา จากนั้นก้อ ค่อย recover ส่วนนั้นๆ ที่เจอออกมา ครับ