一. 添加脚本
存于~/shell/mycd.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
#!bin/bash check_history_file_size() { history_file=$1 # 文件行数超过1000清空 lines=`wc -l $history_file | awk '{print $1}'` if [ $lines -gt 1000 ]; then echo '' > $history_file fi } storage_current_dir() { current_dir=`pwd -P` echo $current_dir >> $history_file } mycd() { if [ $# -eq 0 ]; then cd ~ return fi history_file="${HOME}/.previous_dir" touch $history_file # 如果第一个参数是以横杠开头 if [ ${1:0:1} = '-' ]; then if [ ${1:1:1} = 'o' ]; then tail $history_file -n 10 return fi len=${#1} target_dir=`tail -n $len $history_file | head -n 1` storage_current_dir cd $target_dir return fi check_history_file_size $history_file storage_current_dir cd $@ } |
二. 之后在.zshrc中添加如下配置
1 2 3 4 |
. ~/shell/mycd.sh alias cd="mycd" |
三. source .zshrc 生效
1 2 3 |
source ~/.zshrc |