Skriptlösung (en)
1. Automatisch aktualisierte Bibliotheksansicht
Mit dem folgenden Hintergrundskript können Sie ein Verzeichnis einrichten, in dem der kombinierte Inhalt einer beliebigen Anzahl anderer Ordner virtuell angezeigt wird.
Der Inhalt des Ordners (der aus Symlinks besteht) wird dynamisch mit den (kombinierten) Quellen synchronisiert.
Wie es funktioniert
Das Skript listet regelmäßig den Inhalt der Quellordner sowie den Zielordner für die "Bibliotheks" -Ansicht auf.
- Wenn sich in einem der Quellordner Elemente befinden, die nicht in der Bibliothek vorhanden sind, wird in der Bibliothek ein Symlink erstellt.
- wenn es Elemente in der Bibliothek sind, nicht in eines des Quellordner (eigentlich ein gebrochener Link) bestehenden, wird das Element entfernt aus der Bibliothek.
Das Vergleichen von Listen ist (programmgesteuert) extrem leicht und ressourcenschonend. Ich habe das Skript mit einer viel schnelleren Schleife als im folgenden Skript getestet, mit einer Anzahl von Elementen von ungefähr 500 in einer einzelnen Verzeichnisebene, ohne zusätzliche (wahrnehmbare) Last.
Das Skript und wie man es benutzt
#!/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)
- Kopieren Sie das Skript in eine leere Datei und speichern Sie es unter
library_view.py
Test- führen Sie das Skript mit dem Ziel , das Verzeichnis der kombinierten Verzeichnisse in, wie zu sehen erstem Argumente , die Quellverzeichnisse als nächste Argumente, zum Beispiel:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
Dieser Befehl zeigt den Inhalt der Ordner source1
und source2
in virtual_library
.
Wenn alles einwandfrei funktioniert, fügen Sie es zu Startanwendungen hinzu: Dash> Startanwendungen> Hinzufügen. Fügen Sie den Befehl hinzu:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
Hinweis
Wie bereits erwähnt, können Sie bei Bedarf mehr als zwei Soure-Verzeichnisse hinzufügen.
2. Manuelle Version
Wenn Sie aus irgendeinem Grund kein Hintergrundskript verwenden möchten, können Sie den Bibliotheksordner mit genau demselben Befehl unter einer Tastenkombination mithilfe des folgenden Skripts manuell aktualisieren (synchronisieren):
#!/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)
Wählen Sie: Systemeinstellungen> "Tastatur"> "Verknüpfungen"> "Benutzerdefinierte Verknüpfungen". Klicken Sie auf das "+" und fügen Sie den Befehl zu einer Tastenkombination Ihrer Wahl hinzu:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
sudo mount --bind olddir newdir
aber das ist wahrscheinlich nicht genau das, wonach Sie