Solução (s) com script
1. Visualização da biblioteca atualizada automaticamente
Com o script em segundo plano abaixo, você pode configurar um diretório, mostrando virtualmente o conteúdo combinado de um número arbitrário de outras pastas.
O conteúdo da pasta (existente de links simbólicos) é sincronizado dinamicamente com as fontes (combinadas).
Como funciona
O script lista periodicamente o conteúdo das pastas de origem e a pasta de destino da visualização "biblioteca".
- Se houver itens em qualquer uma das pastas de origem, não existentes na biblioteca, um link simbólico será criado na biblioteca.
- se houver itens na biblioteca, não existentes em nenhuma das pastas de origem (na verdade, um link quebrado), o item será removido da biblioteca.
A comparação de listas é extremamente leve (programaticamente) e com poucos recursos. Testei o script com um loop muito mais rápido do que o script abaixo, com vários itens de cerca de 500 em um único nível de diretório, sem carga (perceptível) adicional.
O script e como 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 o script em um arquivo vazio, salve-o como
library_view.py
Teste - execute o script com o diretório de destino , para visualizar os diretórios combinados, como primeiro argumento , nos diretórios de origem como próximos argumentos, por exemplo:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
Este comando mostrará o conteúdo das pastas source1
e source2
dentro virtual_library
.
Se tudo funcionar bem, adicione-o aos aplicativos de inicialização: Dash> Startup Applications> Add. Adicione o comando:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
Nota
Como mencionado, você pode adicionar mais de dois diretórios de soure, se quiser.
2. Versão manual
Se você preferir não usar um script em segundo plano por algum motivo, poderá atualizar (sincronizar) manualmente a pasta da biblioteca, exatamente com o mesmo comando em uma tecla de atalho, usando o script abaixo:
#!/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)
Escolha: Configurações do sistema> "Teclado"> "Atalhos"> "Atalhos personalizados". Clique no "+" e adicione o comando com uma combinação de teclas de sua escolha:
python3 /path/to/library_view.py /path/to/virtual_library /path/to/source1 /path/to/source2
sudo mount --bind olddir newdir
mas provavelmente não é exatamente isso que você