gpt4 book ai didi

linux - 在多个目录中执行命令

转载 作者:太空宇宙 更新时间:2023-11-04 12:34:42 27 4
gpt4 key购买 nike

我的 Linux 服务器上有大量单一安装的 WordPress 站点。我想创建包含网站组目录名称的文本文件。

例如,我所有的网站都位于 /var/www/vhosts 中,我可能想将一组 100 个网站分组到一个文本文件中,例如

site1
site2
site3
site4

我如何编写一个脚本,该脚本将仅循环遍历组文本文件中指定的目录并执行命令。我的目标是符号链接(symbolic link)一些 WordPress 插件,如果我可以创建组并在该组目录中执行命令,我不想手动逐个目录。

对于组文件中的每个站点,转到 /wp-content/plugins 文件夹并执行指定的符号链接(symbolic link)命令。

最佳答案

根据您的目标,您可以通过使用 find-exec 操作的单行代码来实现这一目标。我倾向于将其作为 Bash 循环来执行,因为添加额外的命令比使用冗长而笨拙的命令来完成所有操作以及处理错误更容易。

我不知道这是不是你想要的,但这是一个建议。

#!/bin/bash

# Receives site group file as argument1
# Receives symlink name as argument 2
# Further arguments will be passed to the command called

sites_dir="/var/www/vhosts"
commands_dir="wp-content/plugins"

if ! [[ -f $1 ]] ; then
echo "Site list not found : $1"
exit
fi

while IFS= read -r site
do
site_dir="$sites_dir/$site"
if ! [[ -d $site_dir ]] ; then
echo "Unknown site : $site"
continue
fi
command="$site_dir/$commands_dir/$2"
if ! [[ -x $command ]] ; then
echo "Missing or non-executable command : $command"
continue
fi
"$command" "${@:3}"
done <"$1"

关于linux - 在多个目录中执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42282402/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com