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

รายการเปรียบเทียบนั้นมีน้ำหนักเบามาก (โดยทางโปรแกรม) และมีทรัพยากรเหลือน้อย ฉันทดสอบสคริปต์ด้วยลูปที่เร็วกว่ามากจากนั้นในสคริปต์ด้านล่างโดยมีรายการประมาณ 500 รายการในระดับไดเรกทอรีเดียวโดยไม่มีการโหลดเพิ่มเติมใด ๆ (สังเกตได้) ใด ๆ
สคริปต์และวิธีการใช้
#!/usr/bin/env python3
import os
import sys
import time
# --- set loop time below (or leave it as it is)
loop = 5
# ---
# don't change anything below
target = sys.argv[1]
sources = sys.argv[2:]
while True:
currlinks = os.listdir(target)
compare = []
for dr in sources:
for f in os.listdir(dr):
compare.append(f)
if not f in currlinks:
# create link
os.symlink(dr+"/"+f, target+"/"+f)
# clean up possible broken links
for link in currlinks:
if not link in compare:
os.remove(target+"/"+link)
# loop time
time.sleep(loop)
- คัดลอกสคริปต์ลงในไฟล์ว่างแล้วบันทึกเป็น
library_view.py
ทดสอบสคริปต์ด้วยไดเรกทอรีเป้าหมายเพื่อดูไดเรกทอรีรวมในเป็นอาร์กิวเมนต์แรกไดเรกทอรีต้นทางเป็นอาร์กิวเมนต์ถัดไปเช่น:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
คำสั่งนี้จะแสดงเนื้อหาของโฟลเดอร์source1
และในsource2
virtual_library
หากใช้งานได้ดีให้เพิ่มลงในแอปพลิเคชันเริ่มต้น: Dash> แอปพลิเคชันเริ่มต้น> เพิ่ม เพิ่มคำสั่ง:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
บันทึก
ตามที่กล่าวไว้คุณสามารถเพิ่มมากกว่าสองไดเรกทอรี soure ถ้าคุณต้องการ
2. รุ่นคู่มือ
หากคุณไม่ต้องการใช้สคริปต์พื้นหลังด้วยเหตุผลบางอย่างคุณสามารถอัปเดต (ซิงโครไนซ์) โฟลเดอร์ไลบรารีด้วยตนเองโดยใช้คำสั่งเดียวกันภายใต้คีย์ลัดโดยใช้สคริปต์ด้านล่าง:
#!/usr/bin/env python3
import os
import sys
target = sys.argv[1]
sources = sys.argv[2:]
currlinks = os.listdir(target)
compare = []
for dr in sources:
for f in os.listdir(dr):
compare.append(f)
if not f in currlinks:
# create link
os.symlink(dr+"/"+f, target+"/"+f)
# clean up possible broken links
for link in currlinks:
if not link in compare:
os.remove(target+"/"+link)
เลือก: การตั้งค่าระบบ> "แป้นพิมพ์"> "ทางลัด"> "ทางลัดที่กำหนดเอง" คลิกที่ "+" และเพิ่มคำสั่ง yo คีย์ผสมที่คุณเลือก:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
sudo mount --bind olddir newdir
แต่นี่อาจจะไม่ใช่สิ่งที่คุณเป็นหลังจาก ...