Quando iniciado, o script abaixo altera automaticamente as permissões de todos os arquivos de um determinado tipo (extensão) em um diretório (uma vez). Depois disso, o script verifica o diretório a cada 5 segundos para arquivos recém-adicionados , e altera as permissões se o arquivo for do tipo dado (nesse caso, .py
arquivo)
Tem algumas opções: neste caso, torna os arquivos recém-adicionados executáveis, mas outras ações também são possíveis, conforme definido na linha: command = "chmod +x"
. Além disso, você pode definir (alterar) em que tipo de arquivos (extensões de linguagem) a ação deve ser executada.
Como usar
Copie o script abaixo em um arquivo vazio. Salve-o como change_permission.py
e execute-o em segundo plano pelo comando:
python3 <script> <folder_to_watch>
O script
#!/usr/bin/env python3
import subprocess
import time
import sys
directory = sys.argv[1]
command = "chmod +x"; check_interval = 5; extensions = (".py")
def current_files():
read = subprocess.check_output(["ls", directory]).decode("utf-8").strip()
return [item for item in read.split("\n") if item[item.rfind("."):] in extensions]
initial_files = current_files()
for file in initial_files:
subprocess.call(["/bin/bash", "-c", command+" "+directory+"/"+file])
while True:
update = current_files()
for file in update:
if not file in initial_files:
subprocess.call(["/bin/bash", "-c", command+" "+directory+"/"+file])
initial_files = update
time.sleep(check_interval)
* Nota: se você precisar de privilégios sudo, simplesmente execute o script com sudo