Win10 Git Bash下如何筛选无扩展名的File类型文件?
解决Git Bash中筛选类型为“File”的HTML文件问题
嘿,我明白你遇到的问题了——你用find -type "File"报错是因为Git Bash里的find命令,它的-type参数只能接受单个字母的类型标识(比如f代表普通文件、d代表目录),而你看到的“File”是Windows系统里显示的文件类型描述,并不是find能识别的参数值。
要筛选这些实际是HTML的无扩展名文件,我们得换个思路:通过文件内容来判断,毕竟它们本质是HTML文件,内容里会有特征标识。这里给你两个实用的方法:
方法1:用file命令识别文件类型
file命令可以检测文件的实际类型,我们可以把它和find结合起来用:
find . -type f -exec file {} \; | grep "HTML" | cut -d: -f1
拆解一下这个命令的作用:
find . -type f:遍历当前目录下所有的普通文件(排除目录、链接等)-exec file {} \;:对每个找到的文件执行file命令,输出文件的类型描述grep "HTML":过滤出包含“HTML”关键词的结果行(因为HTML文件会被识别为HTML类型)cut -d: -f1:把每行里的文件名部分提取出来(去掉file命令输出的类型描述部分)
方法2:直接匹配HTML文件的内容开头
大多数HTML文件会以<!DOCTYPE html>或者<html>开头,我们可以用grep检查文件的开头内容,结合find筛选:
find . -type f -exec grep -l "^<!DOCTYPE html>\|^<html" {} \;
这个命令的关键点:
-l:让grep只输出匹配到内容的文件名,而不是具体的匹配行^<!DOCTYPE html>\|^<html:匹配以<!DOCTYPE html>开头,或者以<html>开头的文件(^表示行首,\|表示“或”)
这样就能精准筛选出那些无扩展名但实际是HTML的文件啦~
内容的提问来源于stack exchange,提问作者user1592380
相关产品推荐
相关产品推荐

