Я хотел бы, чтобы папка музыки Ubuntu по умолчанию /home/$USER/Music
работала так же, как библиотека в Windows. По сути, это будет виртуальная папка с содержимым других папок.
Мое обоснование: Rhythm Box будет смотреть только одну папку для новой музыки. Вся моя музыка хранится в двух папках /home/$USER/Dropbox/Music
и /home/$USER/Dropbox/New Music
.
Также полезно показать содержимое других папок Dropbox в стандартных папках Ubuntu («Документы», «Изображения» и т. Д.).
Я искал и пытался найти ответ самостоятельно, но безрезультатно. Я уверен, что есть способ сделать это; Я просто скучаю по этому.
Спасибо заранее.
С фоновым сценарием ниже, можно настроить каталог, фактически показав объединенное содержание произвольного числа других папок.
Содержание папки (существующий из символьных ссылок) динамично синхронизируется с (объединенными) источниками.
Сценарий периодически перечисляет содержание исходных папок, а также целенаправленной папки для "библиотеки" - представление.
Сравнение списков является чрезвычайно легким весом (программно) и низко на ресурсах. Я протестировал сценарий с намного более быстрым циклом затем в сценарии ниже, со многими объектами приблизительно 500 на единственном уровне каталога, без дополнительной (noticable) загрузки вообще.
#!/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
Как упомянуто, можно добавить больше чем два каталога Соре, если Вам нравится.
Если Вы предпочли бы не использовать фоновый сценарий по некоторым причинам, можно вручную обновить (синхронизируют) папку библиотеки, с точно той же командой под сочетанием клавиш, с помощью сценария ниже:
#!/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
Можно установить unionfs-fuse
для этого:
sudo apt-get install unionfs-fuse
Монтирование:
unionfs-fuse /folder1=RW:/folder2=RW /mount/point
Это сгруппирует все содержание от folder1 и folder2 (или больше если Вы захотите) к Вашей точке монтирования
Umounting:
sudo umount /mount/point