Soluzione (i) con script
1. Vista libreria aggiornata automaticamente
Con lo script in background di seguito, puoi impostare una directory, che mostra virtualmente il contenuto combinato di un numero arbitrario di altre cartelle.
Il contenuto della cartella (esistente di collegamenti simbolici) è sincronizzato dinamicamente con le fonti (combinate).
Come funziona
Lo script elenca periodicamente il contenuto delle cartelle di origine e la cartella di destinazione per la vista "libreria".
- Se ci sono elementi in una delle cartelle di origine, non esistenti nella libreria, nella libreria verrà creato un collegamento simbolico.
- se ci sono elementi nella libreria, non esistenti in nessuna delle cartelle di origine (in realtà un collegamento interrotto), l'elemento viene rimosso dalla libreria.
Il confronto delle liste è estremamente leggero (a livello di programmazione) e con poche risorse. Ho testato lo script con un ciclo molto più veloce rispetto allo script seguente, con un numero di elementi di circa 500 in un singolo livello di directory, senza alcun carico aggiuntivo (evidente).
Lo script e come usare
#!/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)
- Copia lo script in un file vuoto, salvalo come
library_view.py
Prova- esegui lo script con la directory target , per visualizzare le directory combinate, come primo argomento , nelle directory di origine come argomenti successivi, ad esempio:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
Questo comando mostrerà il contenuto delle cartelle source1
e source2
in virtual_library
.
Se tutto funziona correttamente, aggiungilo alle applicazioni di avvio: Dash> Applicazioni di avvio> Aggiungi. Aggiungi il comando:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
Nota
Come accennato, puoi aggiungere più di due directory soure, se lo desideri.
2. Versione manuale
Se preferisci non utilizzare uno script in background per qualche motivo, puoi aggiornare (sincronizzare) manualmente la cartella della libreria, con esattamente lo stesso comando sotto un tasto di scelta rapida, usando lo script seguente:
#!/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)
Scegli: Impostazioni di sistema> "Tastiera"> "Scorciatoie"> "Scorciatoie personalizzate". Fai clic su "+" e aggiungi il comando yo una combinazione di tasti a tua scelta:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
sudo mount --bind olddir newdir
ma questo probabilmente non è esattamente quello che stai