স্ক্রিপ্টযুক্ত সমাধান (গুলি)
1. স্বয়ংক্রিয়ভাবে লাইব্রেরি ভিউ আপডেট হয়েছে
নীচের ব্যাকগ্রাউন্ড স্ক্রিপ্টের সাহায্যে আপনি একটি ডিরেক্টরি সেটআপ করতে পারেন, অন্য ফোল্ডারের স্বেচ্ছাসেবী সংখ্যার সম্মিলিত সামগ্রী দেখিয়ে।
ফোল্ডারের সামগ্রী (সিমলিঙ্কগুলির বিদ্যমান) গতিশীলভাবে (সংযুক্ত) উত্সের সাথে সিঙ্ক্রোনাইজ করা হয়েছে।
কিভাবে এটা কাজ করে
স্ক্রিপ্টটি পর্যায়ক্রমে উত্স ফোল্ডারগুলির সামগ্রীর পাশাপাশি "লাইব্রেরি"-দেখার জন্য লক্ষ্যযুক্ত ফোল্ডারটি তালিকাভুক্ত করে।
- সেখানে উৎস ফোল্ডার কোনো আইটেম, হন না লাইব্রেরিতে বিদ্যমান, একটি সিমবলিক লিঙ্ক লাইব্রেরিতে তৈরি করা হবে।
- যদি সেখানে লাইব্রেরিতে আইটেম, হয় না উৎস ফোল্ডার (আসলে একটি ভাঙ্গা লিঙ্ক) কোনো বিদ্যমান, আইটেমের মুছে লাইব্রেরি থেকে।
তালিকার তুলনা করা অত্যন্ত হালকা ওজন (প্রোগ্রামিকভাবে) এবং সংস্থানগুলিতে কম। আমি স্ক্রিপ্টটি আরও দ্রুত লুপ দিয়ে তারপরে নিচের স্ক্রিপ্টটিতে পরীক্ষা করেছি, একক ডিরেক্টরি স্তরে প্রায় 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
।
যদি সমস্ত ঠিকঠাক কাজ করে তবে এটি স্টার্টআপ অ্যাপ্লিকেশনগুলিতে যুক্ত করুন: ড্যাশ> স্টার্টআপ অ্যাপ্লিকেশন> যুক্ত করুন। কমান্ড যুক্ত করুন:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
বিঃদ্রঃ
উল্লিখিত হিসাবে, আপনি চাইলে দুটি বেশি স্যুরের ডিরেক্টরি যুক্ত করতে পারেন।
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)
চয়ন করুন: সিস্টেম সেটিংস> "কীবোর্ড"> "শর্টকাটস"> "কাস্টম শর্টকাট"। "+" ক্লিক করুন এবং কমান্ডটি যুক্ত করুন আপনার পছন্দের একটি মূল সংমিশ্রণ:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
sudo mount --bind olddir newdir
তবে এটি সম্ভবত আপনার পরে যা হয় না ...