โฮมเพจ » ทำอย่างไร » คุณสร้างไฟล์เดียว 'ปรากฏ' ให้อยู่ในหลายโฟลเดอร์ในเวลาเดียวกันได้อย่างไร

    คุณสร้างไฟล์เดียว 'ปรากฏ' ให้อยู่ในหลายโฟลเดอร์ในเวลาเดียวกันได้อย่างไร

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

    เซสชั่นคำถามและคำตอบในวันนี้มาถึงเราด้วยความอนุเคราะห์จาก SuperUser - แผนกย่อยของ Exchange Exchange ซึ่งเป็นกลุ่มที่ขับเคลื่อนด้วยชุมชนของเว็บไซต์ถาม - ตอบ.

    มารยาทภาพหน้าจอของ csaveanu (Flickr).

    คำถาม

    ตัวอ่าน SuperUser Elliot กำลังมองหาวิธีที่ดีที่สุดที่จะให้ไฟล์เดียวกันปรากฏในหลาย ๆ โฟลเดอร์ในเวลาเดียวกัน:

    ฉันมี 50+ โฟลเดอร์แต่ละโฟลเดอร์มีข้อมูลจำนวนมากที่ต้องดำเนินการ พวกเขาทั้งหมดจะถูกประมวลผลโดยใช้รหัสที่แน่นอนเดียวกันใช้ os.path.dirname (os.path.realpath (ไฟล์)) เพื่อให้ได้ไดเรกทอรีที่มีสคริปต์ python อยู่ดังนั้นผู้ใช้จึงไม่จำเป็นต้องทำการแก้ไขด้วยตนเองพวกเขาเพียงแค่ดับเบิลคลิก.

    ฉันต้องการให้สคริปต์ปรากฏราวกับว่าอยู่ในแต่ละโฟลเดอร์ในขณะที่อยู่ในที่เดียวเท่านั้นจริง ๆ เพื่อให้ฉันสามารถแก้ไขได้หนึ่งครั้งจากนั้นเมื่อเรียกใช้จากตำแหน่งใด ๆ เหล่านี้จะมีเส้นทางโฟลเดอร์ที่ถูกต้อง อีกทางเลือกหนึ่งคือการแก้ไขต้นแบบจากนั้นวางมันทีละหนึ่งโฟลเดอร์ผ่านโฟลเดอร์ทั้งหมด 50+ รายการทุกครั้งที่ฉันอัปเดตโค้ดซึ่งน่าเบื่อมากและเกิดข้อผิดพลาดได้ง่าย บน Linux ฉันสามารถตั้งค่านี้ด้วยลิงก์สัญลักษณ์ แต่ฉันไม่สามารถหาวิธีที่จะทำกับ Windows ได้.

    หรืออีกวิธีหนึ่งในการวางไฟล์ลงในไดเรกทอรีเป้าหมายทั้งหมดในคราวเดียวแทนที่จะทำทีละไฟล์จะบรรลุเป้าหมายเดียวกัน.

    มีวิธีการทำเช่นนี้มากกว่าการคัดลอกและวางไฟล์สคริปต์ทีละโฟลเดอร์?

    คำตอบ

    ผู้สนับสนุน SuperUser gronostaj มีคำตอบสำหรับเรา:

    คุณต้องการ ลิงก์สัญลักษณ์ หรือ ฮาร์ดลิงก์.

    ลิงก์สัญลักษณ์ (หรือ symlinks สำหรับสั้น ๆ ) ค่อนข้างคล้ายกับทางลัด: มีไฟล์จริงหนึ่งไฟล์และมีการอ้างอิงหลายรายการ (symlinks) กับมัน พวกเขายังมีลูกศรเล็ก ๆ ที่ไอคอน ไม่เหมือนทางลัด, symlinks สามารถมีส่วนขยายใด ๆ.

    ลิงค์ยาก ผูกไฟล์บนฮาร์ดไดรฟ์ไปยังตำแหน่งในแผนผังไดเรกทอรี แต่ละไฟล์มีอย่างน้อยหนึ่งไฟล์ ฮาร์ดลิงก์, มิฉะนั้นจะไม่มีอยู่ในไดเรกทอรีใด ๆ หากไฟล์มีหลาย ๆ ลิงค์ยาก, ไฟล์ต้นฉบับไม่สามารถแยกความแตกต่างจากไฟล์อื่นและมีไฟล์อยู่ในที่เดียวเท่านั้น.

    ทั้งสองมีข้อ จำกัด :

    • ซอฟต์แวร์บางตัวไม่เล่นอย่างดี symlinks.
    • การลบไฟล์ต้นฉบับจะทำให้ไฟล์ทั้งหมดนั้นหายไป symlinks แตก.
    • คุณไม่สามารถ ฮาร์ดลิงก์ โฟลเดอร์ (แต่คุณสามารถสร้าง Directory Junction ได้หาก symlink ไม่พอ).
    • การสร้างข้ามพาร์ติชัน ลิงค์ยาก เป็นไปไม่ได้.

    symlinks มักจะเพียงพอ.

    วิธีสร้าง Symlink หรือ Hard Link:

    1. เรียกใช้งานบรรทัดคำสั่งพิเศษ: กดปุ่ม รหัส Windows, ชนิด cmd, จากนั้นกด Ctrl + Shift + Enter.

    2. ออกคำสั่ง mklink:

    • mklink link_name link_target สำหรับไฟล์ symlink
    • mklink / d link_name link_target สำหรับโฟลเดอร์ symlink
    • mklink / h link_name link_target สำหรับไฟล์ ฮาร์ดลิงก์
    • mklink / j link_name link_target สำหรับ แยกไดเรกทอรี

    มีสิ่งที่จะเพิ่มคำอธิบายหรือไม่ ปิดเสียงในความคิดเห็น ต้องการอ่านคำตอบเพิ่มเติมจากผู้ใช้ Stack Exchange คนอื่นหรือไม่ ลองอ่านหัวข้อสนทนาเต็มได้ที่นี่.