2013-01-07 72 views
0

多年来,我的网站文件结构从上传随机文件到测试不同的东西变得非常混乱。我有我的所有文件,如这个列表:通过命令行查找并删除未使用的文件

file1.html 
another.html 
otherstuff.php 
cool.jpg 
whatsthisdo.js 
hmmmm.js 

有什么办法,我可以输入我通过命令行的文件列表和搜索在我的网站和输出的列表中的所有其他文件的内容我的其他文件中没有提及的文件?

例如,如果cool.jpg和hmmmm.js没有在我的任何其他文件则提到可以输出他们像这样的列表:

cool.jpg 
hmmmm.js 

然后任何与其他文件上面提到的没有列出,因为它们是在另一个文件中的某处提到的。注意:我不希望它自动删除未使用的文件,我会手动执行此操作。

另外,当然我有多个文件夹,所以它需要从我当前位置递归搜索并输出所有未使用(未引用)的文件。

我在想命令行是最快/最简单的方法,除非有人知道另一个。提前感谢您的帮助!

回答

1

是的!这与grep很容易做到。在这种情况下,您将运行像这样的命令:

$ for orphan in `cat orphans.txt`; do \ 
    echo "Checking for presence of ${orphan} in present directory..." ; 
    grep -rl $orphan . ; done 

而且orphans.txt看起来像你上面的文件列表,每行一个文件。如果您想grep不区分大小写,您可以将-i添加到上面的grep。你可能想在/var/www或你的发行版保持它的webroots的任何地方运行该命令。如果在看到上面的“正在检查......”并且下面没有匹配,您没有任何匹配该名称的文件。

相关问题