Я хочу удалить все файлы и каталоги, кроме определенных файлов, имена которых я хочу указать. Есть ли какой-нибудь сценарий 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
и каталог [файл]
Есть ли какая-нибудь команда, которая может сохранить эти файлы и удалить другие файлы или любой PHP-код?
Командная строка
Сначала сделайте копию всего:
tar -cf /to/a/save/place/PHP_backup.tar *
, где / to / a / save / place - это любой каталог не по этому пути.
Теперь вы можете использовать следующую команду:
rm -rv !(.htaccess|index.php|file)
удалить файлы из php
Если вам нужно использовать php, вы можете взять это funtion и измените его, чтобы оставить нужные файлы и директорию.
trash
команда от мусора-cli очень удобна для этого типа вещи. Это доступно в репозитории вселенной, и можно установить его, если у Вас нет его с командой sudo apt install trash-cli
После того, как установленный можно просто дать команду
trash !(.htaccess|index.php|file)
который говорит этому повреждать все, не соответствуя тому, что находится в круглой скобке. В этом случае .htaccess, index.php и файл каталога.
Конечно, это требует, чтобы расширенное сопоставление с образцом было включено с shopt -s extglob
как упомянуто десертом в этом комментарии
Действительно нет никакой потребности скопировать все в файле tar с этим подходом как все, что Вы повреждаете, будет в корзине и если Вы делаете ошибку, можно восстановиться с restore-trash
и выбор соответствующего файла или каталога, который Вы хотите восстановить.
Если у Вас должен быть PHP, видят, удаляют связь.
Этот ответ был вдохновлен частично этим