批量重命名所有配置文件结尾以符合 apache 2.4

批量重命名所有配置文件结尾以符合 apache 2.4

从 Apache 2.4 开始,所有/etc/apache2/sites-available和中的文件都sites-enabled必须以以下结尾命名.conf

现在在我的服务器上有很多这样的文件,重命名这些文件sites-available很容易:

for i in /etc/apache2/sites-available/*; do 
  if [[ $i != *.conf ]]; then
    mv -v $i $i.conf; 
  fi
done

sites-enabled但是我怎样才能用一个命令重命名它们的所有链接呢?

答案1

仅需要一个命令是一件很难实现的事情UNIX哲学心里。

另一方面:你可以用俏皮话来统治你世界的主要部分。

sites-available首先使用问题中的脚本修复配置文件,然后使用以下代码在sites-enabled.

cd /etc/apache2/sites-enabled
find . -type l -ls \
| awk '{print $13 ".conf -> " $11 ".conf"}' \
| mmv -s -n

这将使用您现有的链接并创建新链接并附.conf加到源和目标。

mmv -n是个试运行这仅表明会发生什么。如果您对结果满意,请再次运行,无需-n

然后在不带 -n 的情况下运行 mmv 后,使用以下命令删除旧的悬空符号链接

find -L /etc/apache2/sites-enabled -type l -delete

相关内容