[有时,我曾在一个团队中工作,该团队开发了许多教育软件,现在对它们进行了检查,以查找错误和更新。在此过程中,我注意到文件夹“ imgs”累积了太多文件。大概其中一位开发人员决定将每种软件使用的所有图像都包含在该文件夹中。但是,由于软件太多,因此手动检查所有软件会很痛苦(有些图像是布局的一部分,几乎看不见)。
是否可以在Linux中编写Shell脚本来检查给定文件夹中的文件是否被另一个文件夹中的一组HTML和JS文件所使用?
转到图像文件夹并尝试此操作
for name in *; { grep -ril $name /path/to/soft/* || echo "$name not used"; }
不确定我是否正确理解了您的问题,但这也许会对您有所帮助
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中,您将目录导演打从嗨,将列出他应搜索的所有文件名和目标位置。
无法检查一般情况-因为HTML和Javascript是两个动态的(例如Javascript代码可以在文件上创建图像文件名)。同样,可以在CSS样式表,内联样式等中指定图像。
您想查看HTML / JS文件,并查看是否可以识别实际用于指定图像的标签。希望这将减少需要提取的XML标记和属性名称的数量。
或者,如果您有权访问服务器的“访问日志”,则可以找出随着时间的推移访问了哪些图像,并将搜索集中在日志文件中未引用的图像上。