
Si desea aprender a ejecutar comandos de Linux cuando cambia cualquier archivo en su directorio de trabajo y cuando se crea un nuevo archivo, ha venido al lugar correcto.
En Linux puedes usar cron
Programe un comando para que se ejecute en un momento específico.
Pero, ¿qué sucede si necesita ejecutar un comando cada vez que se modifica un archivo o se agrega un nuevo archivo a un directorio?
Esto también es fácil de lograr y hay algunas herramientas de línea de comandos para hacerlo.
¡Empecemos!
ver actuador
watchexec
es una herramienta práctica e independiente que supervisa un directorio de trabajo determinado y ejecuta comandos cuando se detectan cambios, como actualizaciones de archivos o nuevas creaciones de archivos.
rasgo
- No requiere una línea de comando complicada
xargs
(parámetro extendido). - Verifique el directorio actual y todos los subdirectorios para cambios en tiempo real.
- No se requiere tiempo de ejecución de idioma, no está conectado a ningún idioma o ecosistema específico.
- .gitignore y .ignorar Notificaciones utilizadas para decidir qué archivos ignorar de forma predeterminada.
- Los grupos de procesos se utilizan para rastrear programas bifurcados.
- Admite la visualización de archivos con extensiones específicas.
- Es compatible con OS X, Linux y Windows.
- Filtrar e ignorar eventos basados en glob (patrones de búsqueda de archivos para encontrar nombres de archivos parcialmente idénticos son posibles.
instalar watchexec
Fácil instalación watchexec
herramienta, pegue el enlace a continuación en un indicador de terminal o shell y presione Entrar.
Linux y mac OS
curl -sS https://webinstall.dev/watchexec | bash
Después de una instalación exitosa, la ruta se mostrará en la pantalla.En mi caso esta herramienta fue instalada en /root/.local/bin
┌──(root💀kali)-[~]
└─# curl -sS https://webinstall.dev/watchexec | bash
Thanks for using webi to install '[email protected]' on 'Linux/x86_64'.
Have a problem? Experience a bug? Please let us know:
https://github.com/webinstall/webi-installers/issues
Lovin' it? Say thanks with a Star on GitHub:
https://github.com/webinstall/webi-installers
Found /root/Downloads/webi/watchexec/cli-v1.18.9/watchexec-1.18.9-x86_64-unknown-linux-musl.tar.xz
Extracting /root/Downloads/webi/watchexec/cli-v1.18.9/watchexec-1.18.9-x86_64-unknown-linux-musl.tar.xz
Installing to /root/.local/opt/watchexec-vcli-v1.18.9/bin/watchexec
Installed 'watchexec vcli-v1.18.9' as /root/.local/bin/watchexec
Después de la instalación, navegue hasta .local/bin
repositorio y use estos comandos para verificar si el archivo existe.
cd .local/bin
ls
El siguiente paso es exportar la ruta para usar ver actuador herramienta.
export PATH="/root/.local/bin:$PATH"
Para ejecutar, simplemente escriba watchexec
En la terminal como usuario root. Use este comando para ver qué banderas y opciones se pueden usar con la herramienta watchexec.
watchexec --help
ejemplo comando de ejemplo
- llamada
ls -la
Cuando cualquier archivo en este directorio/subdirectorio cambia. Este comando muestra todos los archivos presentes en el directorio cada vez que se detecta alguna modificación.
watchexec -- ls -la
- Ejecute este comando cada vez que cambie cualquier archivo de extensión python, js, CSS o Html en el directorio actual. Aquí puede pasar cualquier comando que desee. Las extensiones de archivo deben estar separadas por comas.
watchexec --exts py,js,css,html
- ejecute el comando cuando entre cualquier archivo
lib
osrc
Variedad. La opción «-w» monitorea un archivo o directorio específico en el sistema.
watchexec -w lib -w src
- Invocar/reiniciar cualquier servicio cuando cambie cualquier archivo en el directorio actual (y todos los subdirectorios).
watchexec -e html -r tor
watchexec -e js,py -r mysql
Aquí, si un proceso o servicio se está ejecutando en el sistema, la opción «-r» lo reinicia.
Para obtener más ejemplos de uso de watchexec, puede visitar el repositorio oficial de GitHub.
Ingresar
entr
es una utilidad de línea de comandos simple y excelente para ejecutar comandos arbitrarios en cualquier modificación en un directorio determinado.
«Ingresar«representar Ejecución de prueba de notificación de eventosRío. Esta herramienta fue creada para comentarios rápidos y pruebas automatizadas.
Instalar en pc
entr
Preinstalado en las distribuciones de Linux. Si falta, debe instalarlo manualmente.
La herramienta es fácil de usar y se puede instalar con el siguiente comando.
sudo apt-get install entr
O puede instalarlo clonando el repositorio oficial de Git.
git clone https://github.com/eradman/entr.git
Luego, navegue a ese directorio e instale los requisitos usando el siguiente comando.
./configure
make test
make install
Para ver las opciones de compilación disponibles, ejecute ./configure -h
ejemplo comando de ejemplo
Ver opciones y parámetros disponibles entr
Pedido. Utilice los siguientes comandos.
man entr
Este comando muestra el manual del usuario entr
Pedido.
NAME
entr — run arbitrary commands when files change
SYNOPSIS
entr [-acdnprsz] utility [argument /_ ...]
DESCRIPTION
A list of files provided on standard input, and the utility is executed using the supplied arguments
if any of them change. entr waits for the child process to finish before responding to subsequent
file system events. A TTY is also opened before entering the watch loop in order to support interac‐
tive utilities.
The arguments are as follows:
-a Respond to all events which occur while the utility is running. Without this option, entr
consolidates events in order to avoid looping. This option has no effect in conjunction with
the -r flag.
-c Clear the screen before invoking the utility specified on the command line. Specify twice to
erase the scroll back buffer.
-d Track the directories of regular files provided as input and exit if a new file is added.
This option also enables directories to be specified explicitly. If specified twice, all new
entries to a directory are recognized, otherwise files with names beginning with ‘.’ are ig‐
nored.
-n Run in non-interactive mode. In this mode entr does not attempt to read from the TTY or
change its properties.
-p Postpone the first execution of the utility until a file is modified.
Manual page entr(1) line 1 (press h for help or q to quit)
- Inicia y recarga automáticamente el servidor MySQL cuando se modifica cualquier archivo JavaScript en el directorio de trabajo. Cada vez que guarda cambios en un archivo,
entr
Vuelva a cargar el servidor MySQL.
ls *.js | entr -r mysql
- Recarga automáticamente el servidor web o termina cuando el servidor sale.
$ ls * | entr -rz ./httpd
Para más detalles y ejemplos entr
comando, puede visitar su repositorio oficial de GitHub.
Últimas palabras 👩💻
Espero que haya encontrado útil este artículo para aprender a ejecutar comandos de Linux cuando cambia cualquier archivo en un directorio determinado y cuando se crea un nuevo archivo.
También podría estar interesado en aprender a eliminar archivos y directorios en Linux.