Você pode executar periodicamente o script de "manutenção" abaixo para atualizar a pasta com links (por exemplo, por uma tarefa do cron ou em "Aplicativos de inicialização", veja abaixo).
O que o script faz
O script lista todos os arquivos de vídeo (por extensão) de até 10 diretórios (ou unidades) diferentes e verifica se existe um link com nome semelhante em sua pasta "library". Caso contrário, cria o link.
Embora você esteja solicitando arquivos de vídeo, dessa forma você pode manter uma "pasta de biblioteca" de qualquer tipo de documento de um determinado tipo de arquivo.
Funciona muito rápido: para atualizar de um disco quase cheio de 750GB (lento / externo), demorei apenas 4 segundos, por isso não será um grande fardo para o seu sistema.
Como usar
- Copie o script abaixo em um arquivo vazio e salve-o como
update_links.py
. -
Se necessário, defina na seção head as extensões de arquivo das quais você gostaria de criar links. Eu já configurei para:
extensions = (".flv", ".mp4", ".mp3", ".mkv")
como você mencionou em um comentário.
Defina também o caminho para a sua pasta com os links para os vídeos:
library = "/path/to/your/library_folder"
-
O script leva até 10 diretórios como argumentos. Para executá-lo, use o comando:
python3 <script> <directory_1> <directory_2> <directory_3> <directory_4>
Você pode adicionar o comando a seus aplicativos de inicialização: (Dash > "Aplicativos de inicialização" > "Adicionar") ou executá-lo por um trabalho cron.
O script
#!/usr/bin/env python3
import os
import sys
import subprocess
library = "/path/to/your/library_folder"
extensions = (".flv", ".mp4", ".mp3", ".mkv")
def create_links(directory):
for root, dirs, files in os.walk(directory):
for name in files:
if (name.startswith("."), name.count(".") == 0) == (False, False):
extension = name[name.rfind("."):]
if (extension in extensions, os.path.isfile(library+"/"+name)) == (True, False):
command = 'ln -s "'+root+"/"+name+'" "'+library+"/"+name+'"'
subprocess.Popen(["/bin/bash", "-c", command])
else:
pass
else:
pass
i = 1
while i <= 10:
try:
dr = (sys.argv[i])
create_links(dr)
i = i+1
except IndexError:
break