execute command when file changes

¿Cómo ejecutar el comando cuando el archivo cambia en Linux?

Publicado por
Comparte en redes sociales


Ha venido al lugar correcto si desea aprender a ejecutar comandos de Linux cuando cambia un archivo en un directorio de trabajo y cuando se crean nuevos archivos.

En Linux puedes usar cron para programar comandos para que se ejecuten en determinados momentos.

Pero, ¿qué sucede si necesita ejecutar comandos cada vez que se cambia un archivo o se agrega un nuevo archivo a un directorio?

También es fácil de hacer y hay herramientas de línea de comandos para hacerlo.

¡Empecemos!

relojejec

watchexec es una herramienta práctica e independiente que supervisa un directorio de trabajo determinado y ejecuta un comando si detecta algún cambio, como la actualización de un archivo o la creación de un nuevo archivo.

Características

  • No requiere una línea de comando compleja que involucre xargs (argumentos extendidos).
  • Comprueba los cambios en el directorio actual y todos los subdirectorios en tiempo real.
  • No hay necesidad de un tiempo de ejecución de idioma y no está conectado a ningún idioma o ecosistema específico.
  • .gitignore y .ignorar se utilizan de forma predeterminada para decidir para qué archivos ignorar las notificaciones.
  • Los grupos de procesos se utilizan para rastrear programas de bifurcación.
  • Se admite la visualización de archivos con una determinada extensión.
  • Es compatible con OS X, Linux y Windows.
  • Es posible filtrar e ignorar eventos basados ​​en glob (patrones de búsqueda de archivos para encontrar nombres de archivo parcialmente idénticos).

Instalación de watchexec

Para instalar fácilmente watchexec herramienta, pegue el siguiente enlace en la terminal o en un indicador de shell y presione enter.

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 se instaló 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

Y después de la instalación, vaya a .local/bin repositorio y verifique si el archivo está allí o no usando estos comandos.

cd .local/bin

ls

El siguiente paso es exportar la ruta para usar el relojejec 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

Ejemplos de comandos

  • Llamada ls -la cuando un archivo cambia en este directorio/subdirectorio. Este comando muestra todos los archivos presentes en el directorio cada vez que detecta una modificación.
watchexec -- ls -la
  • Cada vez que cambie cualquiera de los archivos de extensión python, js, css o html en el directorio actual, ejecute el comando. Aquí puedes hacer el pedido que quieras. Las extensiones de archivo deben estar separadas por una coma.
 watchexec --exts py,js,css,html <command&gt;
  • Ejecute el comando cuando cualquier archivo en lib Donde src cambios. La opción «-w» monitorea un archivo o directorio específico en el sistema.
watchexec -w lib -w src <command&gt;
  • Llame/reinicie cualquier servicio cuando cambie un archivo en el directorio actual (y todos los subdirectorios).
watchexec -e html -r tor

watchexec -e js,py -r mysql

Aquí la opción «-r» reinicia el proceso o servicio si se está ejecutando en el sistema.

Para obtener más ejemplos del uso de watchexec, puede visitar el repositorio oficial de GitHub.

Entrada

entr es una utilidad de línea de comandos simple y excelente para ejecutar comandos arbitrarios cuando se producen cambios en un directorio determinado.

Leer también  Top 12 Best Business Process Management (BPM) Tools for SMBs [2023]

«Entrada» medio Prueba de notificación de eventosR. Esta herramienta fue creada con el objetivo de hacer una retroalimentación rápida y pruebas automatizadas.

Instalación

entr está preinstalado en la distribución de Linux. Si falta, debe instalarlo manualmente.

Esta herramienta es fácil de usar y se puede instalar con el siguiente comando.

sudo apt-get install entr

O también puedes instalarlo clonando el archivo oficial repositorio Git.

git clone https://github.com/eradman/entr.git

Luego navegue a ese directorio e instale los requisitos usando los comandos a continuación.

./configure
make test
make install

Para ver las opciones de compilación disponibles, ejecute ./configure -h

Ejemplos de comandos

Para ver las opciones y los argumentos disponibles para entr pedido. Utilice el siguiente comando.

man entr

Este comando muestra el manual de usuario del 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)
  • Para iniciar y recargar automáticamente un servidor MySQL cuando un archivo JavaScript cambia en el directorio de trabajo. Cada vez que se guardan cambios en el archivo, entr recargar el servidor MySQL.
 ls *.js | entr -r mysql
  • Para recargar automáticamente un servidor web o terminar si el servidor se cierra.
$ ls * | entr -rz ./httpd

Para más detalles y ejemplos sobre entr orden, puede visitar su sitio web oficial repositorio GitHub.

Leer también  ¿Es Mojo el mejor lenguaje para el desarrollo de IA?

Últimas palabras 👩‍💻

Espero que haya encontrado este artículo muy útil para aprender a ejecutar comandos de Linux cuando cambia un archivo en un directorio determinado y cuando se crean nuevos archivos.

También podría estar interesado en aprender a eliminar archivos y directorios en Linux.



Source link

Si quiere puede hacernos una donación por el trabajo que hacemos, lo apreciaremos mucho.

Direcciones de Billetera:

- BTC: 14xsuQRtT3Abek4zgDWZxJXs9VRdwxyPUS 

- USDT: TQmV9FyrcpeaZMro3M1yeEHnNjv7xKZDNe 

- BNB: 0x2fdb9034507b6d505d351a6f59d877040d0edb0f

- DOGE: D5SZesmFQGYVkE5trYYLF8hNPBgXgYcmrx 

También puede seguirnos en nuestras Redes sociales para mantenerse al tanto de los últimos post de la web:

-Twitter

- Telegram

Disclaimer: En Cryptoshitcompra.com no nos hacemos responsables de ninguna inversión de ningún visitante, nosotros simplemente damos información sobre Tokens, juegos NFT y criptomonedas, no recomendamos inversiones

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *