rm -rf 销毁要删除的文件的目录(多个参数)

rm -rf 销毁要删除的文件的目录(多个参数)

在测试环境中我执行了:

rm -rf /var/www/html/${domain} /etc/nginx/sites-available/${domain} /etc/nginx/sites-enabled/${domain}

结果是html,目录sites-available及其sites-enabled所有内容都被删除。

这句话有什么问题吗?鉴于我给出了完整路径,我错过了可能导致这种情况的原因,我认为它与 的递归性无关-r

答案1

如果域的值为空或未定义,您只需运行,例如rm -rf /var/www/html.

您可以明确检查其domain定义:

if [ -z "$domain" ]; then
    echo "ERROR: domain is undefined" >&2
    exit 1
fi

此外,set -u在脚本中使用可以防止此类问题。这会导致使用未定义的变量导致错误:

$ set -u
$ echo $undefined_variable
bash: undefined_variable: unbound variable

相关内容