Windows 7 / Symlinks - ฉันจะคัดลอก Symlink ไปยังไดเรกทอรีได้อย่างไร


26

เป็นไปได้หรือไม่ที่จะคัดลอก Symlink ไปยังไดเรกทอรีใน Windows 7 เมื่อฉันพยายามคัดลอกไดเรกทอรี symlink มันจะพยายามคัดลอกเนื้อหาไปยังตำแหน่งที่ลึก

คำตอบ:


23

ผมไม่ทราบวิธีที่จะทำมันได้ภายใน Windows Explorer แต่คุณสามารถใช้xcopyที่บรรทัดคำสั่งที่มีการโต้แย้ง / b ให้ดูที่นี่


1
@ Neal ทำงานให้ฉันเหมือนมีเสน่ห์ ฉันได้เพิ่ม/iเช่นกัน ตรวจสอบให้แน่ใจว่าคุณกำลังทำงานกับโฟลเดอร์ SYMLINKS (ไม่ใช่ทางแยก)
Anton Krouglov

13

ใช้คำสั่งต่อไปนี้ในพรอมต์คำสั่งที่ยกระดับ :

xcopy /b /i <source symlink name> <destination symlink name>

ผลลัพธ์คือ0 ไฟล์ที่คัดลอกแล้วอย่างไรก็ตาม symlink จะถูกสร้างขึ้นในปลายทาง นี่คือการทดสอบภายใต้ Windows 7 และ Windows 8.x แต่ควรจะเริ่มต้นเป็น Vista

ปรับปรุง:มันทำงานได้ใน Windows 10 เช่นกัน


1
ใช้งานไม่ได้สำหรับฉันมันยังทำสำเนาทางกายภาพไม่คัดลอก symlink ...
jakub.g

1
ใช้งานได้สำหรับฉัน: รับรางวัล 10 x64 พร้อมท์ระดับสูง ทดสอบกับ win 2012 R2 เช่นกัน ทำให้แน่ใจว่าคุณไม่ได้รวม JUNCTIONS กับ SYMLINKS
Anton Krouglov

10

ใช้โปรแกรมที่รองรับพวกเขาอย่างเห็นได้ชัด ตัวอย่างเช่นFar Managerทำให้ฉันสามารถคัดลอก symlink เป็นลิงก์หรือท่องเว็บและคัดลอกเนื้อหา:

ข้อความแสดงแทน


การแก้ไขจะทำงานกับโฟลเดอร์ symlinked ในพื้นที่เท่านั้น สำหรับเครือข่ายเท่านั้นที่xcopy /b /iช่วยได้
Anton Krouglov

2

Far Manager เป็นสิ่งเดียวที่ทำงานได้ ขอบคุณ Joey

ด้วยเหตุผลบางประการ Link Shell Extension ไม่ได้มีวิธีการคัดลอกลิงค์ sym / junctions หรือฉันโง่เกินกว่าที่จะเข้าใจได้ ลองทุกอย่างในเมนูวางเป็น ...

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

ฉันคัดลอกโฟลเดอร์ผู้ใช้ทั้งหมดของฉัน! ลิงก์บางอย่างที่คุณต้องแก้ไขในภายหลังเช่นข้อมูลแอปพลิเคชัน หากคุณมี Link Shell Extension เพียงแค่คลิกขวาและเปลี่ยนพา ธ ในเมนูคุณสมบัติบริบทลิงก์ มิฉะนั้นพวกเขาจะชี้ไปที่ไดรฟ์เก่าของคุณ ตรวจสอบให้แน่ใจว่าได้แก้ไขสิ่งที่อยู่ในข้อมูลแอปพลิเคชัน, AppData \ Local และไฟล์อินเทอร์เน็ตชั่วคราวด้วย ให้แน่ใจว่าได้ใช้ความเป็นเจ้าของก่อนคัดลอก!

นอกจากนี้คุณต้องลงชื่อเข้าใช้โปรไฟล์ผู้ดูแลระบบอื่นหรือบูตเข้าสู่ระบบปฏิบัติการอื่น หากคุณบู๊ตเข้าสู่ระบบปฏิบัติการอื่นตรวจสอบให้แน่ใจว่าลิงก์ชี้ไปที่อักษรระบุไดรฟ์ที่ระบบปฏิบัติการเป้าหมายต้องการไม่ใช่อักษรระบุไดรฟ์ที่ระบบปฏิบัติการปัจจุบันต้องการ เช่นระบบปฏิบัติการเป้าหมายของฉันคือ J: \ users \ Me จุดแยกของฉันตรงนั้นชี้ไปที่ C: \ users \ Me เพราะ C: \ เป็นอักษรระบุไดรฟ์ที่ฉันจะบูท (ใช่การคลิกที่ลิงค์ตอนนี้จะเปิดโฟลเดอร์ปัจจุบันของ OS ไม่ต้องกังวลกับมัน)

มีรายการรีจิสทรีที่คุณต้องเปลี่ยน ดูที่นี่


ลิงก์เชลล์ส่วนขยายทำงานได้อย่างไรก็ตามคำแนะนำค่อนข้างซับซ้อนสำหรับการคัดลอกโฟลเดอร์ symlinked- ที่มีอยู่แล้ว: superuser.com/a/1509670/231129 (ลิงก์เชลล์ส่วนต่อขยายยังคงคุ้มค่าที่ได้รับในความคิดของฉันสำหรับการสร้างคล่องตัวของ sym-link อย่างไรก็ตาม.)
Venryx

1

นอกจากนี้ฉันพบส่วนขยายของเชลล์ที่อาจทำให้ง่ายขึ้นเล็กน้อย

มันแสดงให้เห็นถึง HowToGeek ที่นี่

และลิงก์ไปยังส่วนขยายของเชลล์เองอยู่ที่นี่

น่าเสียดายที่ฉันไม่ได้มีโอกาสทดสอบตัวเองเพราะฉันต้องทำบนเซิร์ฟเวอร์และฉันไม่ต้องการที่จะเล่นกับส่วนขยายของเชลล์บนเซิร์ฟเวอร์ที่ใช้งานจริง - แต่ฉันคิดว่ามันอาจมีประโยชน์


1

สิ่งนี้ทำโดยใช้ Windows 10 Pro edition อย่างไรก็ตามฉันคิดว่ามันเหมือนกันใน Windows 7 และ Windows 8

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

จากนั้นทำสิ่งนี้ในหน้าต่างพรอมต์คำสั่ง:

copy /L sourceLocation targetLocation

ฉันไม่เห็นข้อมูลอ้างอิง/lในcopyการอ้างถึง win2008r2 และ win2012r2
ivan_pozdeev

ดูว่า "ช่วยคัดลอก" ในคำสั่งให้แสดงรายการตัวเลือก / L ฉันไม่แน่ใจว่า Windows รุ่นของเซิร์ฟเวอร์มีตัวเลือกเช่นเดียวกับ windows 10 และ 8 แม้ว่าจะมีใครคาดหวัง
eug-

0

คุณสามารถใช้Link Shell Extensionสำหรับสิ่งนี้ได้อย่างไรก็ตามคำแนะนำนั้นค่อนข้างซับซ้อน (สำหรับการคัดลอกลิงก์สัญลักษณ์ที่มีอยู่แล้ว)

คำแนะนำ

  1. ใช้ยูทิลิตี LSEConfig.exe เพื่อเปลี่ยนการตั้งค่า "Outer Junction / Symbolic Link" เป็น "Splice"
  2. คลิกขวาและ "เลือกลิงค์แหล่งที่มา" โฟลเดอร์หลักของโฟลเดอร์ sym-linked ที่คุณต้องการคัดลอก
  3. ไปที่โฟลเดอร์พาเรนต์ของสถานที่ที่คุณต้องการวางโฟลเดอร์ sym-linked แล้วเรียกใช้ "Drop As: Smart Copy"
  4. เปลี่ยนชื่อพาเรนต์ชั่วคราว "โฟลเดอร์คอนเทนเนอร์" เป็นชื่อปลายทาง / ชื่อโฟลเดอร์พาเรนต์จริง

ขั้นตอนค่อนข้างยุ่งยากดังนั้นฉันขอแนะนำให้ใช้ xcopy หรือ Far Manager แทน (ยังไม่ได้ลองเลย แต่ฉันคิดว่าพวกมันตรงไปตรงมามากขึ้นสำหรับการคัดลอกโดยตรง / เดี่ยว sym-linked-folder)

(ตามความเห็นของฉันในส่วนของ Link Shell Extension ยังคงคุ้มค่าสำหรับการสร้างความคล่องตัวของ sym-link)

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