我想删除除特定文件之外的所有文件和目录。是否有任何 PHP 脚本可以帮助我?
以下是一个例子:
目录名称:
/home/root/database/
“数据库”目录中的文件包括:
[include]
[img]
[file]
index.php
index.html
.htaccess
index.jpg
index.png
readme.txt
video.mp4
music.mp3
我想删除除.htaccess
和index.php
目录之外的所有文件[file]
。
是否有任何命令可以保存这些文件并删除其他文件或任何 php 代码?
答案1
命令行
首先复制所有内容:
tar -cf /to/a/save/place/PHP_backup.tar *
其中 /to/a/save/place 是该路径之外的任何目录。
现在您可以使用以下命令:
rm -rv !(.htaccess|index.php|file)
从 php 中删除文件
如果你必须使用 php,你可以使用这个功能并修改它以保留所需的文件和目录。
答案2
trash
来自的命令垃圾处理对于这种事情非常方便。它可以在 universe 存储库中找到,如果你没有它,你可以使用以下命令安装它sudo apt install trash-cli
安装后,您只需发出命令
trash !(.htaccess|index.php|file)
它会告诉它丢弃所有与括号中的内容不匹配的内容。在本例中是 .htaccess 、 index.php 和目录文件。
当然,这需要打开扩展模式匹配,shopt -s extglob
如所述甜点在此评论
使用这种方法时,确实没有必要备份 tar 文件中的所有内容,因为您丢弃的所有内容都会放在垃圾箱中,如果您犯了错误,您可以通过restore-trash
选择要恢复的相应文件或目录来进行恢复。
如果你必须使用 PHP,请参阅解除鏈接。
这个答案的灵感部分来自于这个