Jak mohu okamžitě zjistit, kdy byly do složky v bash skriptu přidány nové soubory? Přál bych si, aby skript zpracovával soubory, jakmile jsou ve složce vytvořeny. Existují nějaké metody kromě plánování úlohy cron, která kontroluje nové soubory každou minutu?
Přijatá odpověď:
Měli byste zvážit použití inotifywait , jako příklad:
inotifywait -m /path -e create -e moved_to |
while read dir action file; do
echo "The file '$file' appeared in directory '$dir' via '$action'"
# do something with the file
done
V Ubuntu inotifywait poskytuje inotify-tools balík. Od verze 3.13 (aktuální v Ubuntu 12.04) inotifywait bude obsahovat název souboru bez volby -f. Starší verze může být nutné vynutit. Důležité je poznamenat, že -e možnost inotifywait je nejlepší způsob, jak provést filtrování událostí. Také vaše read příkaz může přiřadit poziční výstup do více proměnných, které můžete použít nebo ignorovat. K předzpracování výstupu není potřeba používat grep/sed/awk.