由于一台服务器上有多个网站,每次修改网站的时候都要先cd
进入网站的目录。部署网站的时候目录长了点。每次都要输出很长的目录参数。这里使用一个函数wcd
来实现快速切换到网站的目录。
使用的方法
比如网站的位置如下
1. /html/longdir1/longdir2/wsite/www.aaa.com
2. /html/longdir1/longdir2/wsite/www.bbb.com
3. /html/longdir1/longdir2/wsite/www.shelljiaoben.com
修改网的根目录(函数wcd中修改)
base_dir='/html/longdir1/longdir2/wsite'
比如进入目录 /html/longdir1/longdir2/wsite/www.aaa.com
, 执行命令 wcd a
或者 wcd aaa
就可以。
原理
- 进入网站的根目录
- 如果网站的目录名字给函数的第一个参数匹配(通过正则)且只匹配一个,就进入这个目录。
代码示例
#!/bin/bash
function echo_green() { echo -n -e "\033[32m1\033[0m" ;}
function echo_red() { echo -n -e "\033[31m1\033[0m" ; }
function wcd () {
# 填写自己的网站所在的文件
base_dir='/html/longdir1/longdir2/wsite'
cd base_dir;
nu=`ls -lbase_dir | grep '^d' | awk '{print NF}' | grep1 | wc -l`
if [ nu -eq 1 ]; then
end_dir=`ls -lbase_dir | grep '^d' | awk '{print NF}' | grep1`
cd end_dir/webroot
echo -n "Now dir is " && echo_green `pwd` && echo
else
nu=`lsbase_dir | grep 1 | wc -l`
[nu -eq 0 ] && ls base_dir && echo -n "没有找到" \
&& echo_red1 && echo -n "开头的目录 在目录" \
&& echo_red $base_dir && echo "下"
fi
}