Solution (s) scriptée (s)
1. Vue de la bibliothèque mise à jour automatiquement
Avec le script d'arrière-plan ci-dessous, vous pouvez configurer un répertoire, montrant virtuellement le contenu combiné d'un nombre arbitraire d'autres dossiers.
Le contenu du dossier (existant des liens symboliques) est synchronisé dynamiquement avec les sources (combinées).
Comment ça fonctionne
Le script répertorie périodiquement le contenu des dossiers source ainsi que le dossier ciblé pour la vue "bibliothèque".
- S'il y a des éléments dans l'un des dossiers source, qui n'existent pas dans la bibliothèque, un lien symbolique sera créé dans la bibliothèque.
- s'il y a des éléments dans la bibliothèque, non existant dans l' un des dossiers de source ( en fait un lien cassé), l'élément est retiré de la bibliothèque.
La comparaison des listes est extrêmement légère (par programme) et faible en ressources. J'ai testé le script avec une boucle beaucoup plus rapide que dans le script ci-dessous, avec un certain nombre d'éléments d'environ 500 dans un seul niveau de répertoire, sans aucune charge supplémentaire (notable) que ce soit.
Le script et comment utiliser
#!/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)
- Copiez le script dans un fichier vide, enregistrez-le sous
library_view.py
Testez-exécutez le script avec le répertoire cible , pour afficher les répertoires combinés dans, comme premier argument , les répertoires source comme arguments suivants, par exemple:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
Cette commande affichera le contenu des dossiers source1
et source2
dans virtual_library
.
Si tout fonctionne bien, ajoutez-le aux applications de démarrage: Dash> Startup Applications> Add. Ajoutez la commande:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
Remarque
Comme mentionné, vous pouvez ajouter plus de deux répertoires soure si vous le souhaitez.
2. Version manuelle
Si vous préférez ne pas utiliser un script d'arrière-plan pour une raison quelconque, vous pouvez mettre à jour (synchroniser) manuellement le dossier de la bibliothèque, avec exactement la même commande sous une touche de raccourci, en utilisant le script ci-dessous:
#!/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)
Choisissez: Paramètres système> "Clavier"> "Raccourcis"> "Raccourcis personnalisés". Cliquez sur le "+" et ajoutez la commande yo une combinaison de touches de votre choix:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
sudo mount --bind olddir newdir
mais ce n'est probablement pas exactement ce que vous recherchez ...