Найти все файлы python в файловой системе Linux [дубликат]

На этот вопрос уже есть ответ:

Как я могу найти во всей файловой системе Linux все файлы python (файлы с расширением .py )? Я знаю, что могу выполнить find -name filename , но как это сделать для типа файла?

5
задан 10 June 2016 в 13:59

3 ответа

Не все файлы Python будут иметь расширение файла .py - Попытайтесь работать grep -rni python /usr/bin например). Большинство этих сценариев будет иметь 'хижину' (или hashbang) строкой (например. #!/usr/bin/env python, #!/usr/bin/python2.7). Это сообщает интерпретатору сценария, какая программа должна использоваться для выполнения его, и Вы могли искать это для нахождения файлов Python

Однако можно также использовать mimetype файла (обычно вроде text/x-python) найти его:

find / -type f | while read in ; do if file -i "${in}" | grep -q x-python ; then echo "${in}" ; fi ; done

Где / Ваш намеченный поисковый каталог.

С find Вы могли также добавить -executable опция искать только исполняемые файлы. Также использование -type f ограничьте находят, чтобы только искать файлы - Вы могли изменить это и затем показать символьные ссылки и т.д. также (некоторые сценарии содержатся в /usr/lib и т.д. и symlinked к /usr/bin/ и т.д.). Намного больше опций доступно, Вы видите их путем выполнения man find.

file должен смочь предположить тип файла, даже если файл не имеет никакого расширения и т.д. (использующий строку хижины и т.д.) - посмотрите здесь.

К удаленному любой find: ‘/.../FILE’: Permission denied и т.д. ошибки, можно запустить скрипт как корень (использование sudo bash -c "COMMAND", открытие оболочки с sudo su и т.д.), и/или просто добавляют 2>/dev/null к команде находки.

3
ответ дан 10 June 2016 в 13:59

-name '*.py' с тех пор -name принимает шаблон.

следят за одинарными кавычками.

3
ответ дан 10 June 2016 в 13:59

sudo find / -name "*.py"

Вам только нужно sudo для предотвращения Permission denied с (так как Вы ищете от корня).

3
ответ дан 10 June 2016 в 13:59

Другие вопросы по тегам:

Похожие вопросы: