В качестве ответа на этот вопрос Стефан Гименес
сказал мне запустить crond . Вот как это сделать:
/etc/init.d/crond start
Я проверил описанный ниже метод, и он работал нормально
find path -depth -type d -exec sh /tmp/l.sh {} \;
/tmp/l.sh==> Its the script path
Если скрипт должен быть запущен в каталоге, в котором он должен работать, вам нужно сначала cd
туда. Что-то вроде этого:
find -type d -exec sh -c 'cd -- "$1"; exec /path/to/script.sh' sh {} \;
(изменить путь к скрипту, очевидно.)
В качестве альтернативы вы можете изменить сценарий так, чтобы он принимал имя каталога в качестве аргумента, это должно быть так же просто, как добавить cd
в начало сценария.
#!/bin/bash
if [ "$1" ]; then
cd -- "$1" || exit 1
fi
for file in *.*
...
Проверка, если $1
сначала пусто, чтобы поведение по умолчанию по-прежнему работало в текущем каталоге (и чтобы случайно не вызвать cd
без аргументов :это пошло бы на пользователя$HOME
).
А затем просто запустите прямой find -exec
с именем каталога в качестве аргумента скрипта:
find -type d -exec /path/to/script.sh {} \;