在如下情况下,您需要查找和清理html、js、php、sql或其他代码里的站外链接。
- 网站被黑了,您需要查看是否有人挂了黑站的链接
- 刚刚镜像一个网站,您需要清理不需要的外链
- 网上拷贝了一些源码,您怀疑代码里含有广告链接
Linux可以用find+grep组合命令轻松完成这项工作,代码如下:
#针对文件夹里的文件
find -type f | xargs grep -E '<a [^>]+>' | grep -E 'href="[^\"]+"' | grep -v 'your\.domain\.com
' | grep -E '(http|https)://[^"]+'
或
#针对单个文件
cat file | grep -E '<a [^>]+>' | grep -E 'href="[^\"]+"' | grep -v 'your\.domain\.com
' | grep -E '(http|https)://[^"]+'
(使用这个命令的时候注意替换your\.domain\.com
)
也可仅仅查找主域名:
find -type f|xargs grep -Eo '<a [^>]+>'|grep -Eo 'href="[^\"]+"'|grep -Eo '(http|https)://[^"]+'|grep -v 'your\.domain\.com
'|sort -u
比如近来下载到一个小说大全网站的源代码,里面就包含了大量外链,用find+grep火眼金睛全都现形了: