Благодаря комментариям у меня есть две версии, которые работают. Обратите внимание, что я внес несколько изменений (чтобы найти только shebang в начале строки) и разрешить пробелы после shebang.
sudo bash -c 'for logf in $(find / -name "*.py"); do grep '^\\#\\!/usr/bin' "$logf"; done'
По какой-то причине, когда я пытался разрешить пустое пространство после shebang, я не мог заставить его работать.
Еще лучше (и проще)
sudo find / -name "*.py" -exec grep '^#! */usr/bin' {} \;
Почему find
, если все файлы находятся в каталогах одинаковой глубины?
cd "$DIR"
cp */*-001.jpg /destination/path