Сценарійне рішення
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
.
Якщо все працює нормально, додайте його до запуску програм: Dash> Startup Applications> Add. Додайте команду:
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
але це, мабуть, не зовсім те, що ви шукаєте ...