我需要该脚本的简短版本
cp apache-conf/site1.conf /etc/apache2/sites-available
cp apache-conf/site2.conf /etc/apache2/sites-available
cp apache-conf/site..N.conf /etc/apache2/sites-available
a2ensite site1
a2ensite site2
a2ensite site..N
我可以cp apache-conf/*.conf /etc/apache2/sites-available
,但是如何启用它们呢?
答案 0 :(得分:1)
请使用以下命令
find /etc/apache2/sites-available/ -type f -and -not -name "*default*" -exec a2ensite {} \;
这将查找名称中没有“默认”的所有配置文件并激活它们。
如果遇到任何错误,请查看此主题 积分:https://askubuntu.com/questions/916377/how-to-enable-all-site-confs-with-a2ensite-while-passing-over-000-default-conf/917701
答案 1 :(得分:1)
您可以使用bash
中强大的内置实用程序,该实用程序允许遍历文件名部分的数字
# To avoid un-expanded globs being treated as valid entries
shopt -s nullglob
for file in apache-conf/site[0-9]*.conf; do
cp -- "$file" /etc/apache2/sites-available
done
假设N
是静态的,并且在运行时 未知,则可以执行以下操作。考虑一个10
for file in apache-conf/site{0..10}.conf; do
cp -- "$file" /etc/apache2/sites-available
done
,并用于在目标路径上运行命令a2ensite
for file in /etc/apache2/sites-available/*.conf; do
a2ensite "$(basename -- "$file")"
done