Здравствуйте.
Решаю простую задачу: мне нужно для каждого скрипта, что хранится в системе, проверить заголовок с копирайтами. file
отдает мне 100% скрипт (насколько это можно), так как есть и питоновские, и баш и пр. Эта часть, в общем-то, работает. Но никак не могу заставить find
пропускать каталоги, в которых не надо искать (вообще туда не заглядывать): /dev
, /sys
и главное - /proc
. Может еще добавлю своих позже, но сейчас заставить бы хоть на этих работать.
Ищу следующим запросом:
find / \( -path '/proc' -o -path '/dev' -o -path '/sys' \) -prune -o -type f -exec bash -c '[[ $(file -b "'{}'") == *"script"* ]] && (check_file_hdr.sh "'{}'")' \; 2>&1
Так вот иногда(!) это работает. А иногда нет. Не могу понять причины. Иногда это зависает и я вижу, что check_file_hdr.sh
получил какую-то дичь из /proc
.
Я привел кусок кода, чтобы не забивать ненужными данными, может пропустил кавычки. Код запускается, но работает нестабильно.
В официальной документации приведен подобный пример, вроде взял его, немного доработав.
Подскажите, пожалуйста, где я ошибся?
Спасибо