查找Linux文件系统中的所有python文件

查找Linux文件系统中的所有python文件

如何在整个 Linux 文件系统中搜索所有 python 文件(扩展名为 的文件.py)?我知道我可以这样做,find -name filename但是对于文件类型,我该如何做呢?

答案1

-name '*.py'因为-name接受一种模式。

注意单引号。

答案2

并非所有 Python 文件都具有文件扩展名.py- 例如尝试运行grep -rni python /usr/bin)。大多数这些脚本都会有一个“shebang”(或 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/libetc 中并且符号链接到/usr/bin/etc)。还有更多选项可用,您可以通过运行来查看man find

file即使文件没有扩展名等,也应该能够猜测文件类型(使用 shebang 行等)- 参见这里

要删除任何find: ‘/.../FILE’: Permission deniedetc 错误,您可以以 root 身份运行脚本(使用sudo bash -c "COMMAND",使用 etc 打开 shell sudo su),和/或简单地附加2>/dev/null到 find 命令。

答案3

sudo find / -name "*.py"

您只需要sudo避免Permission denieds(因为您正在从根目录进行搜索)。

相关内容