Как найти файл командой find?

Задача такая, есть множество файлов, и множество директорий modified:
/var/www/.../2019/modified/pict1_800x600.jpg
/var/www/.../2019/modified/pict1_1024x768.jpg

'...' - указано не просто так, путь не известен

нужно удалить эти файлы, если в папке /var/www/.../2019/ нет файла pict1_parent.jpg

задачу нужно решить утилитами Debian и bash
  • Вопрос задан
  • 164 просмотра
Решения вопроса 1
@q27off
find /var/www -type f -regex ".*/modified/[^/]+\.jpg" | while read -r path; do name="${path##*/}"; [ ! -f "${path%modified/*}${name%%_*}_parent.jpg" ] && rm -f "$path"; done
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
fzfx
@fzfx
18,5 дм
for i in $(find /var/www -name "modified" -type d); do if [[ $(find "$i"/.. -name "pict1_parent.jpg" | wc -l) -eq 0 ]]; then rm -rf "$i"/pict1_*.jpg; fi; done
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы