Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 通过命令行查找和删除未使用的文件_Shell_Search_Command Line_Ssh_Command - Fatal编程技术网

Shell 通过命令行查找和删除未使用的文件

Shell 通过命令行查找和删除未使用的文件,shell,search,command-line,ssh,command,Shell,Search,Command Line,Ssh,Command,多年来,我的网站文件结构变得非常混乱,上传随机文件来测试不同的东西。我有一个所有文件的列表,例如: file1.html another.html otherstuff.php cool.jpg whatsthisdo.js hmmmm.js 我是否可以通过命令行输入文件列表,搜索网站上所有其他文件的内容,并输出其他文件中未提及的文件列表 例如,如果我的其他文件中没有提到cool.jpg和hmmmm.js,那么它可以将它们输出到如下列表中: cool.jpg hmmmm.js 然后,上面提到

多年来,我的网站文件结构变得非常混乱,上传随机文件来测试不同的东西。我有一个所有文件的列表,例如:

file1.html
another.html
otherstuff.php
cool.jpg
whatsthisdo.js
hmmmm.js
我是否可以通过命令行输入文件列表,搜索网站上所有其他文件的内容,并输出其他文件中未提及的文件列表

例如,如果我的其他文件中没有提到cool.jpg和hmmmm.js,那么它可以将它们输出到如下列表中:

cool.jpg
hmmmm.js
然后,上面提到的任何其他文件都没有列出,因为它们在另一个文件中的某个地方提到过。注意:我不希望它只是自动删除未使用的文件,我会手动删除

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


我认为命令行将是最快/最简单的方法,除非有人知道其他方法。提前感谢你们的帮助

是的!使用
grep
可以很容易地做到这一点。在这种情况下,您可以运行如下命令:

$ for orphan in `cat orphans.txt`; do \
    echo "Checking for presence of ${orphan} in present directory..." ;
    grep -rl $orphan . ; done
而孤儿.txt看起来就像上面的文件列表,每行一个文件。如果您想不敏感地对案例进行grep,可以将
-i
添加到上面的
grep
。您可能希望在
/var/www
或您的发行版保留其webroot的任何地方运行该命令。如果在看到上面的“检查…”后,下面没有匹配项,则表示您没有任何与该名称匹配的文件