自定义linux标签实现快速切换目录

本文介绍了一种在命令行环境中简化频繁使用的目录切换的方法。通过在/etc/profile中添加自定义脚本,用户可以轻松标记常用目录,并通过简单的命令快速返回这些位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文链接:http://blogread.cn/it/article/6648?f=wb,我作了一些小的改动。如需再次转发,请注明。


每天在命令行下,一大部分的工作都是一遍又一遍的输入/usr/lib/python2.7/dist-packages这样来切换目录,现在利用一个简单的配置可以实现如下效果:

root@controller230:/usr/lib/python2.7/dist-packages# cd ~
root@controller230:~# 
root@controller230:~# cd /usr/lib/python2.7/dist-packages
root@controller230:/usr/lib/python2.7/dist-packages# mark dist
root@controller230:/usr/lib/python2.7/dist-packages# cd ~
root@controller230:~# g dist
root@controller230:/usr/lib/python2.7/dist-packages# gs
dist -> /usr/lib/python2.7/dist-packages
root@controller230:/usr/lib/python2.7/dist-packages# 
实现原理:

在/etc/profile末尾增加以下内容后保存:

# mark
export MARKPATH=$HOME/.marks
export MARKDEFAULT=tag

function g {
    local m=$1
    if [ "$m" = "" ]; then m=$MARKDEFAULT; fi
    cd -P "$MARKPATH/$m" 2>/dev/null || echo "No such mark: $m"
}
function mark {
    mkdir -p "$MARKPATH"
    local m=$1
    if [ "$m" = "" ]; then m=$MARKDEFAULT; fi
    rm -f "$MARKPATH/$m"
    ln -s "$(pwd)" "$MARKPATH/$m"
}
function unmark {
    local m=$1
    if [ "$m" = "" ]; then m=$MARKDEFAULT; fi
    rm -f "$MARKPATH/$m"
}
function gs {
   ls -l "$MARKPATH" | grep ^l | cut -d ' ' -f 10-
}

_completemarks() {
    local curw=${COMP_WORDS[COMP_CWORD]}
    local wordlist=$(ls -l "$MARKPATH" | grep ^l | cut -d ' ' -f 10)
    COMPREPLY=($(compgen -W '${wordlist[@]}' -- "$curw"))
    return 0
}

complete -F _completemarks g unmark
以上脚本在Ubuntu下测试通过。其他系统中可能ls -l的输出会不太一样。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值