Soluciones con guión
1. Vista de biblioteca actualizada automáticamente
Con el script de fondo a continuación, puede configurar un directorio, que muestra virtualmente el contenido combinado de un número arbitrario de otras carpetas.
El contenido de la carpeta (existente de enlaces simbólicos) se sincroniza dinámicamente con las fuentes (combinadas).
Cómo funciona
El script enumera periódicamente el contenido de las carpetas de origen, así como la carpeta de destino para la vista "biblioteca".
- Si hay elementos en cualquiera de las carpetas de origen, que no existen en la biblioteca, se creará un enlace simbólico en la biblioteca.
- Si hay elementos en la biblioteca, que no existen en ninguna de las carpetas de origen (en realidad, un enlace roto), el elemento se elimina de la biblioteca.
Comparar listas es extremadamente ligero (programáticamente) y bajo en recursos. Probé la secuencia de comandos con un bucle mucho más rápido que en la secuencia de comandos a continuación, con una serie de elementos de aproximadamente 500 en un solo nivel de directorio, sin carga adicional (notable) en absoluto.
El guión y cómo usar
#!/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)
- Copie el script en un archivo vacío, guárdelo como
library_view.py
Pruebe a ejecutar el script con el directorio de destino , para ver los directorios combinados en, como primer argumento , los directorios de origen como los siguientes argumentos, por ejemplo:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
Este comando mostrará el contenido de las carpetas source1
y source2
en virtual_library
.
Si todo funciona bien, agréguelo a las aplicaciones de inicio: Tablero> Aplicaciones de inicio> Agregar. Agrega el comando:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
Nota
Como se mencionó, puede agregar más de dos directorios de soure si lo desea.
2. Versión manual
Si prefiere no utilizar una secuencia de comandos de fondo por algún motivo, puede actualizar manualmente (sincronizar) la carpeta de la biblioteca, con exactamente el mismo comando bajo una tecla de acceso directo, utilizando la secuencia de comandos a continuación:
#!/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)
Elija: Configuración del sistema> "Teclado"> "Atajos"> "Atajos personalizados". Haga clic en "+" y agregue el comando a la combinación de teclas que elija:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
sudo mount --bind olddir newdir
pero esto probablemente no sea exactamente lo que