Linux find -type f игнорируется - PullRequest
       51

Linux find -type f игнорируется

0 голосов
/ 27 сентября 2019

Я создаю задание cron, которое найдет все файлы *.log* (оно будет использовано для их удаления позже, когда это сработает).

Команда поиска выглядит следующим образом:

find /data/dg  \( -path /data/dg/kf/data -o -path /data/dg/pg/data \) -prune -o -name "*.log*" -type f

И она должна найти все файлы с именем " .log ", которые не находятся в каталогах /data/dg/kf/data и /data/dg/pg/data

Однако вывод этой команды содержит также каталоги.

...
/data/dg/kf/log/controller.log.2019-09-08-22
/data/dg/kf/log/server.log.2019-09-09-07
/data/dg/kf/data
/data/dg/pg/log/postgresql-2019-09-27_000000.log
/data/dg/pg/log/postgresql-2019-09-27_100859.log
/data/dg/pg/log/postgresql-2019-09-27_102411.log
/data/dg/pg/data
/data/dg/sim/log/sim_2019-09-27-11.0.log
/data/dg/sim/log/sim_2019-09-27-12.0.log
...

Кажется, что -type f не работает.Что не так?

1 Ответ

3 голосов
/ 27 сентября 2019

положить -type f сразу после /data/dg

find /data/dg -type f  -not -path "/data/dg/kf/data*" -not -path "/data/dg/pg/data*" -name "*.log*"
...