利用linux find命令找到非二进制的文件,排除掉 /pro
利用linux find命令找到非二进制的文件,排除掉 /proc /sys目录
服务器繁忙,请稍后再试。
利用linux find命令找到非二进制的文件,排除掉 /proc /sys目录
在Linux中,使用find
命令结合file
工具可以查找非二进制文件(通常是文本文件),并通过-prune
选项排除/proc
和/sys
目录。以下是完整命令:
1 | find / \( -path /proc -o -path /sys \) -prune -o -type f -exec sh -c ' |
命令详解:
排除目录:
\( -path /proc -o -path /sys \)
:匹配/proc
或/sys
路径。-prune
:排除这些目录及其内容。
查找普通文件:
-type f
:仅搜索普通文件(排除目录等)。
检查非二进制文件:
-exec sh -c '...' sh {} +
:高效批量处理文件。file -i "$f"
:输出文件的MIME类型(如text/plain
)。grep -q "text/"
:过滤出MIME类型为text/*
的文件(文本文件)。printf "%s\n" "$f"
:打印符合条件的文件路径。
注意事项:
- 效率问题:遍历大量文件时可能较慢(每个文件需调用
file
命令)。 - 错误抑制:若需忽略权限错误,可在
find
开头添加2>/dev/null
。 - 扩展匹配:如需包含JSON、XML等(MIME类型为
application/*
但实为文本),扩展grep
部分:1
grep -qE "text/|application/(json|xml|javascript|shellscript)"
示例输出:
1 | /etc/fstab |
此命令安全处理含空格/特殊字符的文件名,并高效批量处理文件。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Helloeuler!