用一行在许多路径中附加特定文件
Append specific file in many paths with a line
出于某些原因,我已将 php.ini 文件复制到我用户的所有主目录中
示例:
/home/user1/php.ini
/home/user2/php.ini
/home/user3/php.ini
任何用户的主文件夹的 chown 与用户相同:
示例:
/home/user1/ is owned by user1 and group is set to user1
我想将所有 php.ini 文件附加到特定行,例如:
open_basedir=/home/xxxxx:/usr/local/etc/php5/cgi:/tmp
而不是 xxxxxx,我想要 php.ini 当前所在的相关文件夹的所有者。
如何实现自动化?
我作为 root 会做什么:
cd /home
for user in */; do
test -s /home/${user}php.ini || continue
chown ${user%/}: /home/${user}php.ini
echo "open_basedir=/home/${user%/}:/usr/local/etc/php5/cgi:/tmp" >> /home/${user}php.ini
done
您可以使用这个 find
命令:
cd /home
find . -name 'php.ini' -exec bash -c 'd="${1%/*}"; d="${d#*/}"; echo "open_basedir=/home/$d:/usr/local/etc/php5/cgi:/tmp" >> ""' - '{}' \;
出于某些原因,我已将 php.ini 文件复制到我用户的所有主目录中 示例:
/home/user1/php.ini
/home/user2/php.ini
/home/user3/php.ini
任何用户的主文件夹的 chown 与用户相同: 示例:
/home/user1/ is owned by user1 and group is set to user1
我想将所有 php.ini 文件附加到特定行,例如:
open_basedir=/home/xxxxx:/usr/local/etc/php5/cgi:/tmp
而不是 xxxxxx,我想要 php.ini 当前所在的相关文件夹的所有者。
如何实现自动化?
我作为 root 会做什么:
cd /home
for user in */; do
test -s /home/${user}php.ini || continue
chown ${user%/}: /home/${user}php.ini
echo "open_basedir=/home/${user%/}:/usr/local/etc/php5/cgi:/tmp" >> /home/${user}php.ini
done
您可以使用这个 find
命令:
cd /home
find . -name 'php.ini' -exec bash -c 'd="${1%/*}"; d="${d#*/}"; echo "open_basedir=/home/$d:/usr/local/etc/php5/cgi:/tmp" >> ""' - '{}' \;