linux用bash跳转目录,linux - bash的目录书签 - Ubuntu问答

问题描述

bash是否有任何目录书签实用程序,以允许在命令行上更快地移动?

更新

谢谢大家的反馈,但是我创建了自己的简单Shell脚本(可以随意修改/扩展)

function cdb() {

USAGE="Usage: cdb [-c|-g|-d|-l] [bookmark]" ;

if [ ! -e ~/.cd_bookmarks ] ; then

mkdir ~/.cd_bookmarks

fi

case $1 in

# create bookmark

-c) shift

if [ ! -f ~/.cd_bookmarks/$1 ] ; then

echo "cd `pwd`" > ~/.cd_bookmarks/"$1" ;

else

echo "Try again! Looks like there is already a bookmark '$1'"

fi

;;

# goto bookmark

-g) shift

if [ -f ~/.cd_bookmarks/$1 ] ; then

source ~/.cd_bookmarks/"$1"

else

echo "Mmm...looks like your bookmark has spontaneously combusted. What I mean to say is that your bookmark does not exist." ;

fi

;;

# delete bookmark

-d) shift

if [ -f ~/.cd_bookmarks/$1 ] ; then

rm ~/.cd_bookmarks/"$1" ;

else

echo "Oops, forgot to specify the bookmark" ;

fi

;;

# list bookmarks

-l) shift

ls -l ~/.cd_bookmarks/ ;

;;

*) echo "$USAGE" ;

;;

esac

}

安装

1. /创建一个〜/.cdb文件,并将上面的脚本复制到其中。

2. /在您的〜/.bashrc中添加以下内容

if [ -f ~/.cdb ]; then

source ~/.cdb

fi

3. /重启你的bash会话

用法

1. /创建一个书签

$cd my_project

$cdb -c project1

2. /进入书签

$cdb -g project1

3. /列出书签

$cdb -l

4. /删除书签

$cdb -d project1

5. /我所有的书签都存储在哪里?

$cd ~/.cd_bookmarks

最佳方法

cd命令可用的搜索路径的colon-separated列表,其功能类似于二进制文件的$ PATH变量。 $ CDPATH变量可以在本地〜/.bashrc文件中设置。

ash$ cd bash-doc

bash: cd: bash-doc: No such file or directory

bash$ CDPATH=/usr/share/doc

bash$ cd bash-doc

/usr/share/doc/bash-doc

bash$ echo $PWD

/usr/share/doc/bash-doc

cd -

这相当于后退按钮的命令行(将您带到您所在的上一个目录)。

次佳方法

感谢您分享您的解决方案,我也想分享我的解决方案,我发现它比我以前遇到的任何其他功能都有用。

该引擎是一种出色的通用工具:Junegunn的命令行 fuzzy finder。

它主要允许您以多种方式来“fuzzy-find”文件,但它还允许向其馈送任意文本数据并过滤该数据。因此,快捷方式的想法很简单:我们只需要维护一个带有路径的文件(即快捷方式),然后使用fuzzy-filter维护该文件。外观如下:我们键入cdg命令(如果需要,可以从”cd global”输入),获取我们的书签的列表,在几次按键中选择所需的书签,然后按Enter。工作目录已更改为选择的项目:

132508e29f1a966956c499f894b3e371.gif

它非常快速和方便:通常我只键入所需项目的3-4个字母,而其他所有字母都已被过滤掉。另外,当然,我们可以使用箭头键或vim-like键绑定Ctrl+j /Ctrl+k在列表中移动。

也可以将其用于GUI应用程序(通过xterm):我将其用于GUI文件管理器Double Commander。我也计划撰写有关此用例的文章。

第三种方法

在bash脚本/命令中,可以使用pushd和popd

Save and then change the current directory. With no arguments, pushd exchanges the top two directories.

用法

cd /abc

pushd /xxx

pushd /zzz

pushd +1

popd是删除变量(反向方式)

第四种方法

bookmarks.sh为Bash 4.0+版本提供了书签管理系统。它还可以使用Midnight Commander热点列表。

第五种方法

Bashmarks是一个非常简单直观的实用程序。简而言之,安装后的用法是:

s - Saves the current directory as "bookmark_name"

g - Goes (cd) to the directory associated with "bookmark_name"

p - Prints the directory associated with "bookmark_name"

d - Deletes the bookmark

l - Lists all available bookmarks

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值