Удалить все файлы из массива, включая некоторые с * - PullRequest
0 голосов
/ 30 мая 2019

У меня есть массив, содержащий список различных файлов / папок для удаления, включая удаление всех файлов в папке.

server_dir="/srv/data/"
removeLocalFiles=("logs/*.log.gz" "plugins/file.txt" "other.txt")
for serverFile in "${removeLocalFiles[@]}"; do
    rm "$server_dir/$serverFile"
done

Массив будет содержать файлы, папки и, как вы можете видеть, файлы с определенным расширением.

Это не работает, файлы с * не удаляются.

Что я могу использовать для удаления всех файлов в определенном каталоге? Список будет идти именно к этому файлу или папке, поэтому он не должен удалять ничего, кроме этого конкретного файла ./

1 Ответ

0 голосов
/ 30 мая 2019

Вы можете добавить это в свою строку, чтобы проверить, не является ли каталог пустым. Если строка не пуста, rm будет работать просто отлично. [ ! -z "$(ls -A $server_dir/$serverFile")" ] && rm "$server_dir/$serverFile"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...