команда find bash возвращает ./ и как мне перебирать каждый файл? - PullRequest
2 голосов
/ 18 мая 2019

Я запускаю bash-скрипт в контейнере Docker.Все мои файлы находятся в каталоге рабочей области / app.

Я перехожу в / app и использую команды find, чтобы найти путь к каталогу для каждого файла.

Проблема в том, что когда я использую pylint, имя файла возвращается ./directory_name/file_name.py.

Как мне получить ... workspace/directory_name/file_name.py?

#!/bin/bash

awd="$(pwd)app"
lint_path="${awd}/.pylintrc"
>>> cd /app
for file in $(find . -name '*.py' -type d); do
        filename=$(basename $file)
        if [[ $filename != "__init__.py" ]] ; then
                echo "$file"
                ^ prints "./directory__name/file_name.py
                How can I get "/app/directory_name/file_name.py"????
        fi
done

1 Ответ

2 голосов
/ 18 мая 2019

Дайте find абсолютный путь к . с find "$PWD".

Также используйте while read вместо for:

while read file; do
...
done < <(find "$PWD" -name '*.py' -type d)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...