ฉันจะป้องกันไม่ให้โฟลเดอร์ถูกลบโดยตัวเองโดยไม่ตั้งใจได้อย่างไร


41

ฉันมีโฟลเดอร์ที่สำคัญมากบนเดสก์ท็อปของฉัน ฉันทำความสะอาดเดสก์ท็อปเป็นครั้งคราวและฉันกังวลอย่างมากว่าฉันอาจลบโฟลเดอร์ที่กล่าวถึงโดยไม่ตั้งใจ มีวิธีการป้องกันภัยพิบัติดังกล่าวโดยไม่ จำกัด การดำเนินการอ่านเขียนของฉันบ่อยครั้งในเนื้อหาของโฟลเดอร์หรือไม่? หมายเหตุฉันไม่รังเกียจที่จะลบเนื้อหาภายในโฟลเดอร์ทีละรายการ แต่ตัวโฟลเดอร์นั้นสำคัญสำหรับฉัน ถ้ามันถูกลบไปฉันจะเสียความพยายามไปมาก


69
เดสก์ท็อปเป็นสถานที่ที่เลวร้ายที่สุดในการจัดเก็บข้อมูลสำคัญเก็บไว้ที่อื่นและสร้างทางลัดไปยังเดสก์ท็อป
Moab

2
การปฏิบัติทั่วไป, ทางลัดเพียงนำไปสู่โฟลเดอร์ทุกอย่างจะทำงาน
Moab

3
@ JasonStack อาจ แต่ไม่จำเป็นต้อง หากคุณย้ายโฟลเดอร์และมีโปรแกรมหรือเอกสารอื่นที่ถือว่าโฟลเดอร์อยู่บนเดสก์ท็อปของคุณอาจทำให้ไฟล์เสียหาย มันอาจเกิดขึ้นหากคุณมีไฟล์ที่ลิงค์ไปยังไฟล์อื่นเช่น หากสิ่งนั้นไม่ตรงกับเนื้อหาของคุณคุณอาจจะไม่มีปัญหาใด ๆ
บาร์บีคิว

8
อย่าทำอย่างนั้น <hr /> ทำการสำรองข้อมูล ทำการสำรองข้อมูลเสมอ บนสื่อภายนอก ทำการสำรองข้อมูลบนสื่อภายนอกเสมอ นอกจากนี้คุณควรตรวจสอบคุณสมบัติ 'ประวัติไฟล์ / รุ่นก่อนหน้าของ Windows มันค่อนข้างมีประโยชน์
forloop

1
“ ถ้าตอนนี้ฉันย้ายโฟลเดอร์นั้นไปที่อื่นและสร้างทางลัดที่มีชื่อเดียวกันบนเดสก์ท็อปทุกอย่างขึ้นอยู่กับโฟลเดอร์ที่จะทำงานได้ตามปกติหรือไม่” @ JasonStack ฉันตอบว่าในคำตอบที่อัปเดตด้านล่าง ฉันต้องการจะชี้ให้เห็นว่ามีการแนะนำ Junctions ด้วยเหตุผลด่วนเพื่อให้สามารถย้ายสิ่งต่าง ๆ ไปสู่ปริมาณทางกายภาพที่แตกต่างกันโดยไม่กระทบอะไรเลย
JDługosz

คำตอบ:


112

อย่าพยายามหลีกเลี่ยงสิ่งที่หลีกเลี่ยงไม่ได้ ใช้การสำรองข้อมูลและการควบคุมเวอร์ชัน

คุณสามารถปฏิเสธสิทธิ์การลบได้ด้วยตนเอง การลบไฟล์และโฟลเดอร์ภายในไดเรกทอรีนั้นเป็นการอนุญาตแยกต่างหากซึ่งคุณสามารถปิดการใช้งานเมื่อจำเป็น


26
เสียงร้องที่ดีในการสำรองข้อมูล + คำแนะนำการควบคุมเวอร์ชัน
bertieb

6
@bertieb มันสำคัญมาก OP ไม่จำเป็นต้องลบโฟลเดอร์โดยไม่ตั้งใจเพื่อให้งานสูญเสียไปไดรฟ์สามารถตายได้ในวันพรุ่งนี้
CodeCaster

11
ตกลง การรันโดยไม่มีการสำรองข้อมูลเป็นเพียงการสูญเสียข้อมูลในบางจุดในอนาคต - เมื่อไม่ใช่ ตอนนี้ถ้าคุณจะยกโทษให้ฉันscurries สำรองข้อมูลออกไปตรวจสอบอีกครั้ง
bertieb

7
ในฐานะที่เป็นคนไอทีโปรดใช้การสำรองข้อมูลและการควบคุมเวอร์ชันสำหรับไฟล์สำคัญทั้งหมดโดยเฉพาะสิ่งใดก็ตามสำหรับลูกค้าหรือธุรกิจของคุณ ได้โปรดได้โปรดได้โปรด
corsiKa

8
คุณถามว่าอะไรคือสิ่งที่เกิดขึ้น สวยผิดฉันตัวเองตั้งใจลบโฟลเดอร์ที่เต็มไปด้วยสิ่งสำคัญเมื่อปลายปีที่แล้วที่ฉันไม่สามารถกลับมาได้ การโทรปลุกที่สำคัญตอนนี้ฉันสำรองข้อมูลงานของฉันใน GitHub อย่างแรงกล้าทำมิรเรอร์บน BitBucket และยังทำมิเรอร์บนฮาร์ดไดรฟ์แบบพกพา เอามันมาจากผู้รอดชีวิตเด็ก ๆ อย่าปล่อยให้มันเกิดขึ้นกับคุณ ฟังพวกเหล่านี้กลับมาอีกครั้ง อย่างจริงจัง.

51

มีวิธีแก้ไขปัญหาของคุณได้ดีกว่า: ย้ายโฟลเดอร์ไปยังตำแหน่งที่เหมาะสมกว่า (เช่น% USERPROFILE% \ Documents)

หากคุณต้องมีสิทธิ์เข้าถึงโฟลเดอร์จากเดสก์ท็อปคุณสามารถสร้างทางลัดได้ตลอดเวลา วิธีนี้ช่วยให้มั่นใจได้ว่าแม้ว่าคุณอาจลบทางลัดโดยไม่ตั้งใจคุณไม่เคยลบโฟลเดอร์หรือเนื้อหาที่มีค่าของมันด้วยตัวเอง

หากแอปพลิเคชันอื่นขึ้นอยู่กับโฟลเดอร์นี้ที่อยู่บนเดสก์ท็อปคุณสามารถสร้างลิงก์สัญลักษณ์ด้วยคำสั่ง "mklink" เนื่องจากลิงก์สัญลักษณ์ถูกจัดการที่ระดับระบบไฟล์ (ในขณะที่ทางลัดเป็นไฟล์จริงที่ชี้ไปยังตำแหน่งอื่น) จึงไม่ควรมีปัญหาความเข้ากันได้กับโปรแกรมที่พยายามใช้ "ทางลัด" ประเภทนี้ในเส้นทาง


2
เมื่อพิจารณาถึงสถานการณ์นี่เป็นคำตอบที่ถูกต้อง
อังสตรอม

ฉันชอบความคิด แต่ฉันไม่เข้าใจว่าจะใช้งานได้กับ Cygwin ที่ฉันติดตั้งไว้ในโฟลเดอร์ที่กล่าวถึงบนเดสก์ท็อปหรือไม่ มันจะไม่ทำให้เกิดปัญหาสำหรับการติดตั้งและการใช้งาน Cygwin หรือไม่?
codezombie

@JasonStack การติดตั้ง Cygwin อาจมีปัญหาหากคุณย้ายไปยังตำแหน่งอื่น
บาร์บีคิว

1
@JasonStack คุณอาจต้องการแก้ไขคำถามของคุณเพื่อรวมรายละเอียด Cygwin เนื่องจากอาจส่งผลต่อคำตอบที่เป็นไปได้
บาร์บีคิว

1
@ JasonStack Cygwin ควรปฏิบัติต่อ Junctions อย่างล่องหนเช่น Unix mount points โปรแกรม Unix รู้เกี่ยวกับลิงค์สัญลักษณ์และไลบรารี่ Cygwin เวอร์ชั่นใหม่ควรเชื่อมโยงกับสัญลักษณ์ (สไตล์ Vista) ดังนั้นจึงขึ้นอยู่กับโปรแกรมที่จะ "เห็น" มันเป็นสิ่งที่พิเศษหรือไม่
JDługosz

7

ใช่อาจถูก จำกัด ด้วย Windows รุ่นที่คุณมี (รุ่น Home อาจไม่มีความสามารถในการปรับเปลี่ยนความเป็นเจ้าของ) นอกจากนี้ระวังว่าการลบสิทธิ์การลบของคุณไม่ได้รับประกันว่าคุณจะไม่สามารถลบโฟลเดอร์ได้ ฉันถูกเผาหลายครั้ง

นี่คือวิธีการที่มักจะเข้าใจผิดได้:

  1. สร้างผู้ใช้ใหม่
  2. กำหนดสิทธิ์การเป็นเจ้าของโฟลเดอร์ที่คุณไม่ต้องการให้ลบไปยังผู้ใช้ใหม่นี้
  3. ลบสิทธิ์การเข้าถึงของผู้ใช้เพื่อลบโฟลเดอร์ตรวจสอบให้แน่ใจว่าผู้ใช้ของคุณมีสิทธิ์ในการอ่าน / เขียนในโฟลเดอร์

ฉันได้ใช้เคล็ดลับนี้ใน Windows NT เป็น Windows 7 บางครั้งคุณต้องใช้ความระมัดระวังกับการตั้งค่าเล็กน้อยก่อนที่จะทำให้สมบูรณ์

ทดสอบสิ่งนี้ในโฟลเดอร์แรกใหม่ (รวมถึงการสร้างไฟล์และโฟลเดอร์ภายในโฟลเดอร์ทดสอบ!

นอกจากนี้ให้ฟังคำแนะนำของ "ใช้การสำรองข้อมูลและการควบคุมเวอร์ชัน" หากไฟล์นั้นสำคัญคุณต้องมีสำเนาอย่างน้อย 2 ชุด


Windows Home Basic สามารถปรับความเป็นเจ้าของได้ พวกเขาไม่ได้รวมแอปเพล็ตที่จะทำเช่นนั้น เครื่องมือการอนุญาตของบุคคลที่สามยังคงใช้งานได้ นอกจากนี้ PIDL ที่เรียกว่า "God Mode" อาจมีรายการอยู่ด้วย; ฉันจำไม่ได้ ขึ้นอยู่กับว่าพวกเขาระงับสแนปอินด้วยหรือไม่
JDługosz

5

ระบบไฟล์ Windows มีแฟล็ก "อ่านอย่างเดียว" นั้นง่ายกว่าการตั้งค่าการอนุญาต DACL สำหรับเอฟเฟกต์แบบง่าย ๆ

ในพรอมต์คำสั่งใช้คำสั่ง ATTR ในเชลล์ GUI ควรอยู่ใน Properties แม้ว่า gui อาจทำอะไรที่ซับซ้อนและเกินกว่าที่คุณต้องการจริงๆ


นอกจากนี้หากคุณสร้างไดเรกทอรีใหม่ด้วยชื่อเดียวกันคุณสามารถใช้ "กู้คืนเวอร์ชันก่อนหน้า" ได้


ปรับปรุง

ฉันทดลองใช้ระบบ Win7 การลบ GUI (ไม่มีถังขยะรีไซเคิล) จะละเว้นการRตั้งค่าสถานะในไดเรกทอรี ไม่มีคำเตือนเตือนเพิ่มเติมเกี่ยวกับเรื่องนี้เช่นเดียวกับที่ฉันเคยเห็นHและ / หรือตั้งSค่าสถานะ การออกrdจากบรรทัดคำสั่งให้สิทธิ์การเข้าถึงถูกปฏิเสธตามที่คาดไว้ อย่างไรก็ตามคุณไม่สามารถrdเป็นไดเร็กตอรี่ที่ไม่ว่างได้: ลบไฟล์และลบไดเร็กตอรี่เป็นคำสั่งต่าง ๆ . คำสั่งเพื่อลบไดเรกทอรีที่มีเนื้อหาซ้ำ ๆ จะลบเนื้อหาและไม่สามารถลบไดเรกทอรีว่างได้เลย

ดังนั้นการปกป้องไดเรกทอรีเองจึงไม่สามารถใช้งานได้ในการกระทำของ GUI ที่คุณมีอยู่ในใจ และมันก็หมายความว่าวิธีการที่นักเล่นใด ๆ ในการป้องกันตัวเองจากการลบไดเรกทอรีจะไม่ป้องกันมันจากการถูกทำให้ว่างเปล่าก่อน! คุณบอกว่าคุณยังคงต้องการการเข้าถึงปกติภายในไดเรกทอรีเพื่อสร้างและลบไฟล์ดังนั้นการล็อกไฟล์ลงไปอย่างสมบูรณ์จึงไม่ใช่วิธีแก้ปัญหาสำหรับคุณ

ทางออกที่ดีที่สุดน่าจะเป็นการเชื่อมโยงสัญลักษณ์ การสร้างลิงก์สัญลักษณ์ (รูปแบบใหม่สิ่งที่ Windows Vista ขึ้นไปเรียกลิงก์สัญลักษณ์) ไปยังไดเรกทอรีบนเดสก์ท็อปเมื่อไดเรกทอรีมีอยู่จริงที่อื่นทำงานในแง่ที่ว่าถ้าฉันลบไอคอนเดสก์ท็อป (shift-delete, ไม่มีถังขยะรีไซเคิล) ไดเรกทอรีที่แท้จริงไม่ได้รับผลกระทบเนื่องจากมีการลบเฉพาะลิงก์

Shift-Delete ของไอคอนเดสก์ท็อปไม่สนใจว่ามีการทำเครื่องหมายด้วยRแอตทริบิวต์

โปรแกรมที่ใช้กล่องโต้ตอบเปิดไฟล์ Windows มาตรฐานนำทางผ่าน symlink โดยไม่มีปัญหา จริง ๆ แล้วมันแก้ไขชื่อของไดเรกทอรีที่ถูกเชื่อมโยงดังนั้นไฟล์ที่เปิดนั้นเป็นชื่อจริง เช่นDesktop\MyFolderกลายD:\scratch\MyFolderเป็นเมื่อฉันนำทางผ่านมัน

การใช้ลิงค์แบบเก่า ( จังก์ชัน ) โปรแกรมจะเห็นชื่อที่มีทางแยกอยู่ในพา ธ ; เช่นC:\Users\john\Desktop\MyFolder\test.txtความจริงที่ว่ามันเป็นลิงค์ที่มองไม่เห็น กระนั้นการดำเนินการลบ GUI ก็ยังถือว่าเป็นลิงก์ไม่ใช่ติดตามอย่างล่องหน

ทั้งสองวิธีถ้าโปรแกรมไม่ใช้ชื่อ aliased โดยตรงมันจะทำงาน แต่บางครั้งการเห็นไฟล์ด้วยชื่อหนึ่งและบางครั้งไฟล์อื่นอาจทำให้สับสน

ข้อสรุป

ใช้ Junction บนเดสก์ท็อปกับโฟลเดอร์ที่อยู่ที่อื่นและมันจะโปร่งใสอย่างสมบูรณ์ว่านี่คือสิ่งที่เกิดขึ้น หรือไม่ก็ใช้ DACL เพื่อป้องกันการลบไฟล์จุดแยกบนเดสก์ท็อปโดยไม่ตั้งใจ อย่างน้อยก็ให้สคริปต์สร้างใหม่เมื่อจำเป็น

โบนัส

ฉันไม่ได้ลองสิ่งนี้ แต่ฉันสงสัยว่าคุณสามารถมีบางสิ่งใน "รายการใหม่" เพื่อสร้างทางแยกหรือลิงก์สัญลักษณ์ใหม่ จากนั้นเพียงคลิกขวาที่เดสก์ท็อปที่ว่างเปล่าเลือกใหม่ ... แล้วเลือก "ขยะเดสก์ทอป" จากเมนู ให้มันคืนค่าทุกสิ่งที่คุณต้องการบนเดสก์ท็อป


ฉันไม่เคยได้ยินเกี่ยวกับเดสก์ท็อปขยะหรือจุดเชื่อมต่อใน Windows สิ่งที่ฉันรู้ว่าเป็นทางลัด นั่นคือสิ่งที่คุณหมายถึงโดยทางแยก? โดยวิธีการที่ฉันเพิ่งค้นพบจากคำตอบและความคิดเห็นเกี่ยวกับmklinkและฉันย้ายโฟลเดอร์ที่ฉันต้องการ ( ชั่วคราว ) ไปที่โฟลเดอร์เอกสารจากนั้นก็วิ่งไปmklink mylink %userprofile%\Documents\Tempที่มัน มันใช้งานได้และฉันดูเหมือนจะไม่มีปัญหากับโปรแกรมที่เกี่ยวข้องกับไดเรกทอรี
codezombie

เดสก์ท็อปขยะเป็นชื่อที่ฉันสร้างขึ้นสำหรับสคริปต์ของเขา หรือค่อนข้างสำหรับรายการเมนูที่เขาเพิ่มเพื่อเรียกใช้สคริปต์ มันเป็นปุนบนเดสก์ท็อปจังก์ชันและขยะลิ้นชัก ลัดเป็นสิ่งที่แตกต่างกัน ช็อตคัตเป็นที่รู้จักเฉพาะเชลล์ GUI และทำให้ทุกอย่างสับสน ดังนั้นจึงอาจใช้งานได้เหมือนลิงก์สัญลักษณ์เมื่อใช้กล่องโต้ตอบเปิดไฟล์ แต่คุณจะไม่สามารถใช้เป็นชื่อไดเรกทอรีจริง: "C: \ Users \ john \ Desktop \ Shortcutname \ foo.txt" จะไม่ทำงาน
JDługosz


2

อีกสิ่งหนึ่งที่คุณอาจพิจารณาทำคือเปิดใช้งานคุณสมบัติประวัติไฟล์ของ Windows 8.1 สิ่งนี้จะทำให้ระบบของคุณเก็บประวัติการเปลี่ยนแปลงของไฟล์และโฟลเดอร์โดยอัตโนมัติ ควรใช้กับที่เก็บข้อมูลภายนอก แต่สามารถใช้กับไดรฟ์ภายในได้เช่นกัน

http://blogs.msdn.com/b/b8/archive/2012/07/10/protecting-user-files-with-file-history.aspx


ฉันไม่สามารถพูดคุยกับ Win 8.1 ได้และวิธีการทำงานของประวัติไฟล์ แต่ใน Win 7 การคลิกขวาที่โฟลเดอร์จะแสดง "เวอร์ชันก่อนหน้า" เพื่อกู้คืนไฟล์จาก "จุดคืนค่า" ก่อนหน้า ดีมากในทางทฤษฎี แต่ถ้าคุณเติมดิสก์ Windows จะละทิ้งจุดคืนค่าก่อนหน้าและ ... poof - ไม่มีรุ่นก่อนหน้าอีกต่อไป อย่าพึ่งพาระบบปฏิบัติการมากกว่าที่คุณเป็น
Ian W

คุณลักษณะเวอร์ชั่นก่อนหน้านี้ถูกลบออกใน Win 8.1 คุณลักษณะประวัติไฟล์เป็นการแทนที่
บาร์บีคิว

ฉันเข้าใจการเปลี่ยนแปลงคุณสมบัติอย่างไรก็ตามคำถามที่ว่าเมื่อดิสก์หมดเนื้อที่ในการสร้างรายการประวัติไฟล์ใหม่สิ่งที่เกิดขึ้นยังคงอยู่ ต้องการทดสอบไหม คำแนะนำ - อย่าไว้ใจระบบปฏิบัติการมากกว่าที่คุณเชื่อถือได้
Ian W

@ Ian W ไม่แน่ใจว่าเกี่ยวข้องอย่างไร ประวัติไฟล์สร้างการสำรองข้อมูลบนโวลุ่มการจัดเก็บแยกต่างหาก การเติมฮาร์ดไดรฟ์ของคุณอย่างสมบูรณ์ไม่สามารถเขียนทับการสำรองข้อมูลได้เพราะอยู่ในโวลุ่มแยกต่างหาก
บาบี

1

โซลูชันที่มีประสิทธิภาพอาจย้ายโฟลเดอร์ออกจากเดสก์ท็อปแล้วตั้งค่าการเชื่อมต่อระบบไฟล์ NTFSโดยใช้MKLINKคำสั่ง

C: \ Users \ Administrator> mklink

สร้างลิงก์สัญลักษณ์

MKLINK [[/ D] | [/ H] | [/ J]] ลิงก์เป้าหมาย
        / D สร้างลิงค์สัญลักษณ์ไดเรกทอรี ค่าเริ่มต้นคือไฟล์
                ลิงก์สัญลักษณ์
        / H สร้างการเชื่อมโยงอย่างหนักแทนการเชื่อมโยงสัญลักษณ์
        / J สร้างทางแยกไดเรกทอรี
        ลิงก์ระบุชื่อลิงก์สัญลักษณ์ใหม่
        เป้าหมายระบุพา ธ (สัมพัทธ์หรือสัมบูรณ์) ที่ลิงค์ใหม่
                อ้างถึง.

ดังนั้นในกรณีของคุณคำสั่งจะเป็น:

MKLINK /J %userprofile%\Desktop\ImportantFolder D:\ImportantFolder

ที่ไหนD:\ImportantFolderเป็นโฟลเดอร์ที่เกิดขึ้นจริงและ%userprofile%\Desktop\ImportantFolderเป็นทางแยก

หมายเหตุ:

  • ทางแยกไม่ต้องแบกชื่อเดียวกันกับโฟลเดอร์ต้นทาง
  • ทางแยกไม่ใช่การคัดลอกจริงๆแล้วการเปลี่ยนเส้นทางเป็นอีกวิธีหนึ่งในการเข้าถึงโฟลเดอร์ของคุณ ลองนึกภาพเหมือนเวอร์ชัน foldr ของทางลัดปกติ (* .lnk)
  • Junctions แตกต่างจากทางลัดปกติไปยังโฟลเดอร์ที่มีความโปร่งใสโดยสิ้นเชิงกับโปรแกรม
  • หากทางแยกถูกลบโฟลเดอร์จริงจะไม่ถูกลบ
  • แต่การแก้ไขไฟล์ใด ๆ จะเหมือนกับการไปD:\ImportantFolderและทำสิ่งต่างๆ ดังนั้นหากคุณลบpasswords.txtไฟล์ในทางแยกคุณได้ลบออกจากd:/ImportantFolderเกินไป
  • หากคุณลบทางแยกโดยบังเอิญคุณสร้างขึ้นใหม่อีกครั้ง

วิธีกราฟิก (มีประสิทธิภาพมากขึ้นง่ายขึ้น ) (พร้อมส่วนต่อขยายเมนูตามบริบท)

คุณสามารถติดตั้งแทนการเชื่อมโยงส่วนขยายเชลล์แล้วคุณย้ายโฟลเดอร์ของคุณที่อื่นคลิกขวาและเลือกPick link source...แล้วคุณคลิกขวาที่เดสก์ทอปของคุณและเลือก->drop as... Junctionและคุณทำเสร็จแล้ว

นี่เป็นแอปพลิเคชั่นแรกที่ฉันติดตั้งในระบบใหม่เพราะเป็นโซลูชั่นที่มีประโยชน์อย่างยิ่ง ฉันขอแนะนำอย่างยิ่งหากคุณจะต้องจัดการทางแยกหรือฮาร์ดลิงก์ / สัญลักษณ์บนพีซีของคุณ


0

คุณสามารถสำรองไฟล์และโฟลเดอร์ทั้งหมดของคุณได้ใน onedrive คุณสามารถใช้งานได้ฟรี แต่มี จำกัด สำหรับ 15gb อย่างไรก็ตามหากคุณมีการสมัครใช้งาน office 365 คุณจะมีพื้นที่เก็บข้อมูล 1TB ใน onedrive และรวมอยู่ด้วย


ขอบคุณสำหรับคำแนะนำ แต่ฉันไม่สามารถใช้การสำรองข้อมูลบนคลาวด์ได้ในขณะนี้เนื่องจากการดำเนินการอ่าน / เขียนที่รุนแรงในโฟลเดอร์นี้จึงมีข้อ จำกัด ในการใช้แบนด์วิดท์
codezombie
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.