如何使用PHP或任何其他命令删除具有命名exception的所有文件和文件夹

我想删除所有文件和目录,除了我想要指定名称的某些文件。 有没有可以帮助我的PHP脚本?

这是一个例子:

目录名称:

/home/root/database/ 

“database”目录中的文件是:

  [include] [img] [file] index.php index.html .htaccess index.jpg index.png readme.txt video.mp4 music.mp3 

我想删除除.htaccessindex.php以及[file]目录之外的所有文件。

是否有任何命令可以保存这些文件并删除其他文件或任何PHP代码?

命令行

首先复制所有:

 tar -cf /to/a/save/place/PHP_backup.tar * 

where / to / a / save / place是不在该路径中的任何目录。

现在您可以使用以下命令:

 rm -rv !(.htaccess|index.php|file) 

从php删除文件

如果你必须使用php,你可以使用这个function并修改它以留下想要的文件和目录。

来自trash-cli的trash命令对于这种类型的东西非常方便。 它可以在Universe存储库中找到,如果您没有使用命令sudo apt install trash-cli ,则可以安装它

安装完成后,您只需发出命令即可

trash !(.htaccess|index.php|file)告诉它废弃与括号中的内容不匹配的所有内容。 在这种情况下.htaccess,index.php和目录文件。

当然,这需要使用本评论中的甜点所提及的shopt -s extglob来启用扩展模式匹配

实际上没有必要使用这种方法备份tar文件中的所有内容,因为您丢弃的所有内容都将放在垃圾箱中,如果您犯了错误,可以使用restore-trash并选择要恢复的相应文件或目录。

如果你必须有PHP看到取消链接。

这个答案部分受到了这个答案的启发