如何使用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
我想删除除.htaccess
和index.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看到取消链接。
这个答案部分受到了这个答案的启发