Како извршити наредбу када се датотека промени у Линуку?

Дошли сте на право место ако желите да научите како да покренете Линук команде када се било која датотека у радном директоријуму промени и када се креирају нове датотеке.

У Линук-у можете користити црон да бисте заказали покретање команди у одређено време.

Али шта ако су вам потребне команде да се покрећу сваки пут када се датотека модификује или се нова датотека дода у директоријум?

То је такође лако оствариво, а постоје неки алати командне линије за то.

Хајде да почнемо!

ватцхекец

ватцхекец је згодан и самосталан алат који надгледа дати радни директоријум и извршава команду ако открије било какве промене као што је ажурирање датотеке или креирање нове датотеке.

Карактеристике

  • Не захтева сложену командну линију која укључује каргс (проширене аргументе).
  • Проверава промене у тренутном директоријуму и свим поддиректоријумима у реалном времену.
  • Нема потребе за језичким рунтиме-ом и није повезан ни са једним специфичним језиком или екосистемом.
  • .гитигноре и .игноре се подразумевано користе за одлучивање за које датотеке да се игноришу обавештења.
  • Групе процеса се користе за праћење програма рачвања.
  • Подржано је гледање датотека са одређеним екстензијом.
  • Компатибилан је са ОС Кс, Линук и Виндовс.
  • Филтрирање и игнорисање догађаја на основу глоба (могући су обрасци претраге датотека за проналажење делимично идентичних назива датотека.

Инсталација ватцхекец-а

Да бисте лако инсталирали алатку ватцхекец, налепите следећу везу у терминал или промпт љуске и притисните ентер.

  13 СМТП алата за дијагностицирање и тестирање сигурности е-поште

Линук и мацОС

curl -sS https://webinstall.dev/watchexec | bash

Након успешне инсталације, путања ће бити приказана на екрану. У мом случају, овај алат је инсталиран у /роот/.лоцал/бин

┌──(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

И након инсталације, идите до .лоцал/бин спремишта и проверите да ли је датотека тамо или не користећи ове команде.

cd .local/bin

ls

Следећи корак је извоз путање за коришћење алатке ватцхекец.

export PATH="/root/.local/bin:$PATH"

Да бисте покренули, само укуцајте ватцхекец у терминал као роот корисник. Користите ову команду да видите које заставице и опције се могу користити са ватцхекец алатом.

watchexec --help

Пример примера команди

  • Позовите лс -ла када се било која датотека промени у овом директоријуму/поддиректоријуму. Ова команда приказује све датотеке присутне у директоријуму кад год открије било какву модификацију.
watchexec -- ls -la
  • Кад год се промени било која датотека екстензије питхон, јс, ЦСС или Хтмл у тренутном директоријуму, покрените команду. Овде можете проследити било коју команду коју желите. Екстензије датотека треба да буду одвојене зарезом.
 watchexec --exts py,js,css,html <command>
  • Покрени команду када се било која датотека у либ или срц промени. Опција „-в“ прати одређену датотеку или директоријум у систему.
watchexec -w lib -w src <command>
  • Позовите/рестартујте било коју услугу када се било која датотека у тренутном директоријуму (и свим поддиректоријумима) промени.
watchexec -e html -r tor

watchexec -e js,py -r mysql

Овде, опција „-р“ поново покреће процес или услугу ако се покреће у систему.

  Како да погледате и одштампате своје Амазон признанице

За више примера коришћења ватцхекец-а, можете посетити званично ГитХуб спремиште.

ентр

ентр је једноставан и одличан услужни програм командне линије за покретање произвољних команди када дође до било каквих модификација у датом директоријуму.

„ентр“ је скраћеница за Евент Нотифи Тест Руннер. Овај алат је креиран са циљем брзе повратне информације и аутоматског тестирања.

Инсталација

ентр је унапред инсталиран у Линук дистрибуцији. У случају да недостаје, морате га ручно инсталирати.

Овај алат је једноставан за употребу и може се инсталирати следећом командом.

sudo apt-get install entr

Или га такође можете инсталирати клонирањем службеног Гит спремиште.

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

Затим идите до тог директоријума и инсталирајте захтеве користећи следеће команде.

./configure
make test
make install

Да бисте видели доступне опције израде, покрените ./цонфигуре -х

Пример примера команди

Да бисте видели опције и аргументе доступне за команду ентр. Користите следећу команду.

man entr

Ова команда приказује упутство за употребу за команду ентр.

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)
  • За покретање и аутоматско поновно учитавање МиСКЛ сервера када се било која ЈаваСцрипт датотека промени у радном директоријуму. Сваки пут када се промене сачувају у датотеци, ентр поново учитава МиСКЛ сервер.
 ls *.js | entr -r mysql
  • За аутоматско поновно учитавање веб сервера или прекид ако сервер изађе.
$ ls * | entr -rz ./httpd

За више детаља и примера о команди ентр, можете посетити њихов званичник ГитХуб спремиште.

  Поправи Делл 5 звучних сигнала када је укључен

Завршне речи 👩‍💻

Надам се да вам је овај чланак веома користан у учењу како да покренете Линук команде када се било која датотека у датом директоријуму промени и када се креирају нове датотеке.

Можда ћете такође бити заинтересовани да научите како да уклоните датотеке и директоријуме у Линук-у.