команда find bash возвращает ./ и как мне перебирать каждый файл?

Я запускаю bash скрипт в контейнере Docker. Все мои файлы находятся в каталоге workspace / 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 ответ


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

Кроме того, используйте while read вместо for :

while read file; do
...
done < <(find "$PWD" -name '*.py' -type d)

Есть идеи?

10000