shell 用于检查文件夹中的图像是否被一组 HTML 文件使用的脚本

shell script to check if images in a folder are being used by a set of HTML files

前段时间我在一个开发了一系列教育软件的团队工作,现在正在审查它们的错误和更新。 在这个过程中,我注意到文件夹 "imgs" 积累了太多的文件。可能其中一位开发人员决定将每个软件使用的所有图像都包含到该文件夹​​中。但是因为软件太多,全部手动检查太痛苦了(而且有些图片是版面的一部分,几乎看不见)。

有没有办法在 Linux 中编写 shell 脚本来检查给定文件夹中的文件是否被一组 HTML 和另一个中的 JS 文件使用文件夹?

无法检查一般情况 - 因为 HTML 和 Javascript 是两个动态的(例如 Javascript 代码可以在文件上创建图像文件名) .同样,图像可以指定为 CSS 样式 sheet、内联样式等

您想查看 HTML/JS 文件,看看是否可以识别实际用于指定图像的标签。这有望减少需要提取的 XML 标签和属性名称的数量。

作为替代方案,如果您可以访问服务器的 'access log',您可以找出哪些图像在一段时间内被访问过,并将搜索重点放在日志文件中未引用的图像上。

我不确定我是否正确理解了你的问题, 但也许这会对你有所帮助

ls -1 your_source_path | while read file
do
    grep -wnr "$file*" your_destination_path ||  
            echo "no matching for file $file"
            # you can set any extra action here 

done

在 source_path 中,您将 director from hi 列出他应该搜索的所有文件名和目的地。

转到图像文件夹并试试这个

for name in *; { grep -ril $name /path/to/soft/* || echo "$name not used"; }