Cuando se inicia, el siguiente script cambia automáticamente los permisos de todos los archivos de un tipo determinado (extensión) en un directorio (una vez). Después de eso, la secuencia de comandos comprueba el directorio cada 5 segundos en busca de archivos recién agregados y cambia los permisos si el archivo es del tipo dado (en este caso, un .py
archivo)
Tiene varias opciones: en este caso, hace que los archivos recién añadidos ejecutable, pero otras acciones son posibles también, como se define en la línea: command = "chmod +x"
. Además, puede definir (cambiar) en qué tipo de archivos (extensiones de idioma) se debe realizar la acción.
Cómo utilizar
Copie el script a continuación en un archivo vacío. Guárdelo como change_permission.py
y ejecútelo en segundo plano con el comando:
python3 <script> <folder_to_watch>
La secuencia de comandos
#!/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: si necesita privilegios de sudo, simplemente ejecute el script con sudo
vim
oemacs
hacerlo por usted.