Tengo una carpeta completa dedicada a los scripts de Python.
Estoy cansado de hacer chmod en cada nuevo script de Python que escribo.
¿Hay alguna manera de hacer que cada archivo dentro de mi carpeta sea ejecutable si es un script de Python?
Sería bueno tener un script que verifique cada vez que se crea un nuevo script .py y si hay un nuevo script .py, hágalo ejecutable allí mismo.
- Yo uso Vim
command-line
scripts
executable
chmod
Dominici
fuente
fuente
vim
oemacs
hacerlo por usted.Respuestas:
Otra buena opción es Incron . Funciona en inotify con condiciones especificables para una ubicación determinada.
Entonces puedo decir que mire esta carpeta, cuando vea un archivo creado, ejecute un comando.
Así como una muestra incrontab ...
De manera similar, se podría usar la ruta / archivo como argumentos para un script bash para permitirle filtrar por
.py
extensiones si es necesario.fuente
Hará ejecutables todos los
.py
archivos actuales en el directorio / ruta / a / python / scripts / dir .No conozco una herramienta automática como usted describe. Puede ser posible tener una macro en su editor que pueda hacer esto, pero no con el editor que uso. ;-)
fuente
*.py
. También supongo que los scripts de OP son propiedad de su ID de usuario estándar, por lo que no veo la necesidad de hacerlosudo
. Buena suerte a todos.Como primer paso, puedes probar esto en tu
~/.vimrc
:chmod +x
en el nombre de archivo de todos los.py
archivos cuando los escribe. Mirando la lista de eventos (:h events
), no puedo encontrar un evento donde se cree un nuevo archivo, así que tuve que conformarme con ejecutarlo cada vez que se escribe.La primera vez que
chmod
se aplica, el archivo cambia yvim
le alertará sobre eso:Intenté un par de trucos para hacerlo
autoread
solo para este cambio, pero no tuve suerte. Entonces tendrás que presionar Enterdos veces.fuente
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:La secuencia de comandos
* Nota: si necesita privilegios de sudo, simplemente ejecute el script con
sudo
fuente
Aquí hay información con algunos comandos que pueden ayudar, consulte http://ss64.com/bash/syntax-permissions.html
Puede usar el siguiente script de encabezado. Coloque
mkscript.sh
en su$PATH
. Ejecutarmkscript.sh
desde el directorio de trabajo donde se almacenan los scripts de Python. El script crea información útil de encabezado, titula el script y lo hace ejecutable, y luego abre el editor elegido; en tu caso VIM.Modifiqué
mkscript.sh
, producirá scripts con la extensión python*.py
Se
${PYTHON_VERSION}
llama a la variable , por lo quePYTHON_VERSION="/usr/bin/python --version"
se ha agregado al/etc/environment
archivo. Echa un vistazo a https://help.ubuntu.com/community/EnvironmentVariablesfuente