ps-watcher - это инструмент, который отслеживает, какие процессы запущены, и выполняет действие при определенных обстоятельствах. Давайте установим его:
apt-get install ps-watcher
Для получения подробной информации см. Нижнюю часть запуска HHVM с возвратом к PHP-FPM. Это было хорошо для меня.
Один из подходов может заключаться в использовании find для получения каждой директории и передачи результатов ко второму find и выполнения перемещения только в том случае, если второй find делает для возврата любых каталогов ниже данного, например.
while read -rd $'\0' dir; do
[[ -z $(find "$dir" -mindepth 1 -type d) ]] && mv -t path/to/target "$dir"
done < <(find -depth -type d -print0)
или
find -depth -type d -execdir \
bash -c '[[ -z $(find "$0" -mindepth 1 -type d) ]] && mv -t path/to/target "$0"' {} +
, например. заданный
$ tree .
.
├── dir1
└── dir2
├── dir2.a
└── dir2.b
, тогда
$ while read -rd $'\0' dir; do [[ -z $(find "$dir" -mindepth 1 -type d) ]] && echo mv -t path/to/target "$dir"; done < <(find -depth -type d -print0)
mv -t path/to/target ./dir1
mv -t path/to/target ./dir2/dir2.b
mv -t path/to/target ./dir2/dir2.a