利用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!
