Score:0

วิธีสร้างไดเร็กทอรีเงา

ธง us

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

[ข้อความต่อไปนี้ถูกย้ายจากความคิดเห็น] นี่คือสิ่งที่ฉันต้องการบรรลุ ฉันมีไฟล์เพลงอยู่ในตำแหน่งที่กระจัดกระจาย ฉันสามารถสร้างไดเร็กทอรีเดียว D ที่มี symlink ไปยังไดเร็กทอรีทั้งหมด แผนของฉันคือสร้างไดเร็กทอรีเงา D1 ที่มีสำเนาของ symlink ของ D ขณะที่ฉันเล่นเพลง ฉันจะลบโหนดออกจาก D1 เพื่อให้ D1 มีเฉพาะตัวชี้ไปยังเพลงที่ฉันไม่ได้เล่น (ที่ระดับต่างๆ ใน ​​D) ในขณะเดียวกันคลังเพลงต้นฉบับของฉันก็ยังไม่ได้แก้ไข ฉันรู้ว่าอาจมีวิธีอื่นเพื่อให้ได้สิ่งเดียวกัน แต่วิธีนี้เป็นวิธีที่ง่ายในเชิงลึกและควรต้องใช้การเขียนโปรแกรมเชลล์มาตรฐานเท่านั้น

Nmath avatar
ng flag
"ไดเร็กทอรีเงา" คืออะไร? คุณสามารถเจาะจงมากขึ้นและคลุมเครือน้อยลงเกี่ยวกับสิ่งที่คุณตั้งใจจะทำได้หรือไม่? ไม่ชัดเจนว่าคุณหมายถึงอะไรโดยสัญกรณ์ "D" ของคุณ?
cn flag
"แต่นั่นจะทำให้สำเนาของไฟล์ซ้ำกัน" และ "แนวคิดก็คือการดำเนินการบน D1 ไม่ควรแก้ไข D" นั้นขัดแย้งกัน
heynnema avatar
ru flag
นี่ไม่ใช่คำถามของ Ubuntu ... แต่เป็นคำถามของ Windows
waltinator avatar
it flag
ดูเหมือนเป็นความคิดที่งี่เง่า - ทำไมระบบควบคุมเวอร์ชัน (`rcs`, `git`, `sccs`, ...) ถึงไม่ทำสิ่งนี้ อย่างไรก็ตาม หากคุณยังติดอยู่กับแนวคิดนั้น โปรดอ่าน `man inotify`
us flag
นี่คือสิ่งที่ฉันต้องการบรรลุ ฉันมีไฟล์เพลงอยู่ในตำแหน่งที่กระจัดกระจาย ฉันสามารถสร้างไดเร็กทอรีเดียว D ที่มี symlink ไปยังไดเร็กทอรีทั้งหมด แผนของฉันคือสร้างไดเร็กทอรีเงา D1 ที่มีสำเนาของ symlink ของ D ขณะที่ฉันเล่นเพลง ฉันจะลบโหนดออกจาก D1 เพื่อให้ D1 มีเฉพาะตัวชี้ไปยังเพลงที่ฉันไม่ได้เล่น (ที่ระดับต่างๆ ใน ​​D) ในขณะเดียวกันคลังเพลงต้นฉบับของฉันก็ยังไม่ได้แก้ไข ฉันรู้ว่าอาจมีวิธีอื่นเพื่อให้ได้สิ่งเดียวกัน แต่วิธีนี้เป็นวิธีที่ง่ายในเชิงลึกและควรต้องใช้การเขียนโปรแกรมเชลล์มาตรฐานเท่านั้น
vanadium avatar
cn flag
แทนที่จะอธิบายในความคิดเห็น ให้อธิบายในคำถามจริงของคุณ - ใช้การแก้ไข ความคิดเห็นอาจไม่ถูกอ่านหรืออาจหายไป "โหนด" สำหรับคุณคืออะไร? คุณจะลบพวกเขาได้อย่างไร? ฉันสามารถลบไฟล์ โฟลเดอร์ หรือ symlink ได้เท่านั้น ฉันเกรงว่าคุณกำลังมีปัญหา XY และมีวิธีที่ดีกว่าในการบรรลุสิ่งที่คุณต้องการ ตัวอย่างเช่น สำเนามิเรอร์ของไฟล์ฮาร์ดลิงก์
us flag
ระบบควบคุมเวอร์ชันไม่เหมาะสมอย่างยิ่ง เนื่องจากการเปลี่ยนแปลงในไลบรารีเพลงเป็นเพียงการเพิ่มเติมเท่านั้น ฉันแทบจะไม่เคยเปลี่ยนแปลงบางสิ่งที่มีอยู่แล้ว ฉันไม่ได้คาดหวังว่าจะเพิ่มเพลงให้มากกว่านี้
us flag
Windows ไม่เกี่ยวข้องกับที่นี่ เนื่องจากฉันทำทุกอย่างภายใต้ Linux และเพื่อความเรียบง่าย ฉันต้องการทำทุกอย่างโดยใช้เชลล์
Score:1
ธง cn

เช่นเดียวกับการใช้ คุณยังสามารถสร้างลิงก์สัญลักษณ์ไปยังไฟล์ได้ด้วย ซีพี โดยใช้ -s ธง. สิ่งนี้มีประโยชน์เพราะยังคงใช้งานได้กับ -ร และ -ก แฟล็ก หมายความว่าคุณสามารถโคลนแผนผังของ symlink ทั้งหมดได้ตั้งแต่ D ถึง D1

เพื่อให้ทำงานได้อย่างถูกต้อง D ต้องเป็นพาธสัมบูรณ์ หรือแปลงเป็นพาธโดยใช้ $(เรียลพาธ D).

รวมสิ่งนี้เข้าด้วยกัน:

cp -asT "$(realpath D)" D1

เพื่อให้ชัดเจน การแก้ไขไฟล์ใน D1 จะยังคงเปลี่ยนต้นฉบับใน D แต่ลิงก์ใน D1 สามารถลบได้อย่างปลอดภัย

โพสต์คำตอบ

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