首页 > 代码库 > linux如何快速切换到某目录

linux如何快速切换到某目录

    经常使用cd命令切换目录,虽有 cd -,历史目录pop push等操作,终究不直观。直接上代码及部署:

i=1
HERE=`pwd`
VALID_HERE=${HERE//\//\\\/}
ALREADY_EXIST=`grep ^${HERE}$ $1`
declare -a godirs
while true; do
  [[ $2 = "a" ]] && [[ x${ALREADY_EXIST} = "x" ]] && sed -i "/^EOF/i\\${HERE}" $1 
  [[ $2 = "a" ]] && break

  [[ $2 = "d" ]] && [[ x${ALREADY_EXIST} != "x" ]] && sed -i "/^${VALID_HERE}$/d" $1
  [[ $2 = "d" ]] && break


  while true ; do
    read line
    
    if [ $? -ne 0 ] ; then
        break
    fi
    [[ -d $line ]] || continue
    echo -e "\033[`expr 35 + $i % 3`m" $i: $line
    godirs[$i]=$line
    let i=$i+1
  done <<-EOF
/usr/local
EOF
# ===== end of here-document =====

echo -e "\033[0m"
echo -n ‘where to go? ‘
read -n1 -t30 n
echo

[[ x${godirs[${n}]} != "x" ]] && cd ${godirs[${n}]}
break
done


将此文件放到某目录下,比如 /path/ff

在~/.bashrc中添加一行

alias ff=‘. /path/ff path/ff‘

退出重登录即可用。

使用方法如下:

# ff
# ff a
# ff d

分别表示切换目录、添加目录索引、删除目录索引






本文出自 “架构爱好者--成长” 博客,请务必保留此出处http://39372240.blog.51cto.com/2734479/1431628