Unix操作系统下快速切换目录的shell

如果你的目录层次很深的话,这个shell会很方便的直接切换到目的目录,例如

当前目录/usr/home,而目录desdir在/usr/home/app/local/opp/william/desdir

直接打入

$ cd desdir,便可直接从当前目录/use/home切换到/usr/home/app/local/opp/william/desdir

配置一下.profile,加入两行

. ./bin/chdir

alias cd='chdir'

file:chdir

# auto find your directory

# Writer: william 2006 beijing

# add the following two line in $HOME/.profile

# . ./bin/chdir

# alias cd='chdir'

chdir(){if [ -z "$1" ] ; then        cd        PS1="[$PWD]"        export PS1;        returnelif [ "$1" = - ] ; then        cd -        PS1="[$PWD]"        export PS1;        returnelse        if [ -d "./$1" ] ; then        cd ./$1        PS1="[$PWD]"        export PS1;        return        fifi

for LINE in `find $HOME -type d -print | grep -c \/$1$`
do
if [ $LINE -eq 0 ] ; then
echo "your directory $1 is not exsit($LINE)!"
return
fi
done

for Dir in `find $HOME -type d -print | grep \/$1$`
do
if [ $LINE -gt 1 ] ; then
if [ ! -d "$Dir" ] ; then
echo "$Dir is not a directory"
return
fi

printf "$Dir\t\t...do you want to go? default(y)"
read YESNO
# echo "(y/n)="$YESNO

if [ -z "$YESNO" ] ; then
YESNO=y
fi

case "$YESNO" in
[yY]|[yY][eE][sS])
YESNO=y ;;
[nN]|[nN][oO])
YESNO=n ;;
*)
YESNO="" ;;
esac

if [ "$YESNO" = y ] ; then
cd $Dir
PS1="[$PWD]"
export PS1;

return
else
continue
fi
else
cd $Dir
PS1="[$PWD]"
export PS1;
return
fi
done
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索目录
, return
, export
, ps
, THEN
chdir
shell 切换目录、shell脚本切换目录、shell脚本中切换目录、linux shell 切换目录、shell 切换到当前目录,以便于您获取更多的相关知识。

时间: 2024-12-14 16:28:21

Unix操作系统下快速切换目录的shell的相关文章

在SCO UNIX操作系统下架设简单路由器

许多X server都内置了路由的功能,就是连Windows系列也都可以架设成简单路由器. 架设在Unix 和 Linux上的路由器有2点优点: 1 价格比较底,路由服务可以是主机的一个辅助服务. 2 可自控性强,可以架设成兼顾防火墙功能的路由器. SCO UNIX包含有3中守护进程. routed gated irdd 区别是支持不同的协议. 如routed仅支持rip. routed守护进程使用/etc/gateways来初始化静态路由. 当路由器启动是,routed载入这个文件,然后广播其

如何在 Linux/Unix/Mac 下清除 DNS 查询缓存

如何在 Linux/Unix/Mac 下清除 DNS 查询缓存 我在Linux下使用拨号连接上网,频繁的拨号断线造成DNS的问题.我如何在Linux/Unix发行版下使用shell命令清除DNS缓存? 在MS-Windows下,你可以使用ipconfig命令来清除dns缓存.然而,Linux和Unix提供了不同的方法来清除缓存.Linux可以运行 nscd 或者 BIND 或者 dnsmasq 作为名称服务缓存守护进程.大型或者工作组服务器可能使用BIND或者dnsmasq作为专用缓存服务器来加

XP下关于快速切换用户功能的相关编程

不知道大家注意到没有,Windows XP新增加了一个快速切换用户的功能.它可以让您在不注销的情况下在用户之间进行切换,而且每个用户有自己独立的配置文件和桌面.也就是说当您切换到另外一个用户(即用另外一个账号登陆)时,以前的那个用户运行的所有程序都还是在运行的,并没有退出来.这就给我们的开发带来了新的问题.比如您的应用程序提供的功能在多个用户同时运行时发生错误,您必须为应用程序添加代码以检测该情形并作出相应的反应. 1.检测是否有用户正在运行该应用程序 我们平时都使用互斥体的方法来实现只有一个实

windows 8下无需注销重启快速切换不同账户方法

  Windows 8.1快速切换登录账号的方法为:长按"Shift"键,然后右击相应程序的快捷方式图标,便可发现右键菜单中增加了一个"以其他用户身份运行"的选项,点击该项就会弹出Windows安全登录窗口,如下图所示: Windows 8.1快速切换不同账户方法 在这里我们可以输入其他系统账户的用户名和密码即可登陆进行,这样就实现了快速切换帐户了. Windows 8.1快速切换不同账户,可以兼顾多用户的实际需要,Windows 8.1可以分别针对不同帐户建立详细

linux命令切换目录的使用方法_linux shell

1.cd - 作用是快速切换到前一个目录,如下: 复制代码 代码如下: amosli@amosli-pc:~$ cd learn/fd/amosli@amosli-pc:~/learn/fd$ cd -/home/amosli 2.dirs:显示目录栈,列出当前堆栈中保存的目录列表 复制代码 代码如下: amosli@amosli-pc:~/learn/fd$ dirs~/learn/fd 说明: dirs的 -p参数可以每行一个目录的形式显示堆栈中的目录列表-v参数可以在目录前加上编号注意:有

Linux下最快速共享目录的方法

Linux下最快速共享目录的方法 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 搭建FTP,或者是搭建网络文件系统,这些方法都能够实现Linux的目录共享.但是FTP和网络文件系统的功能都过于强大,因此它们都有一些不够方便的地方.比如你想快速共享Linux系统的某个目录给整个项目团队,还想在一分钟内做到,怎么办? 很简单,使用SimpleHTTPServer. 各种Linux发行版通常都内置了Python,故使用此

win7系统下如何快速切换程序窗口的方法

  现在我们使用电脑,经常会同时打开多个窗口,以供我们更加方便的操作电脑,但是窗口一多的话,切换起来就不太方便了,经常需要等待缩略图显示之后,点击相应的窗口才能进行切换,或者是直接使用快捷键来操作,虽然这对于用户来说已经很方便了,但是还有更加方便的操作方法.其实我们可以将程序按钮合并,直接鼠标点击合并按钮就可以切换窗口了,无需等待缩略图的出现.下面小编就来为大家系统的介绍Win7迅速切换程序窗口的操作过程 在Win7中,任务栏相同程序按钮合并是默认设置.用鼠标切换这类程序时需要等略缩图显示之后,

在 Linux/UNIX 终端下使用 nload 实时监控网络流量和带宽使用

如果你想在命令行界面监控网络吞吐量,nload 应用程序是个不错的选择.它是一个实时监控网络流量和带宽使用的控制台应用程序,使用两个图表可视化地展示接收和发送的流量,并提供诸如数据交换总量.最小/最大网络带宽使用量等附加信息. 安装 在 CentOS/RHEL/Red Hat/Fedora Linux 上安装 nload 首先在 CentOS 或者基于 RHEL 的操作系统上启用 EPEL 仓库,然后键入 yum 命令安装 nload: # yum install nload 在 Debian

Unix系统下Find命令的应用

Find命令是Unix操作系统中一个很强大的工具.这个命令除了可以用来定位文件外,还有其他许多 很实用的用途.如可以用来备份文件.交互式删除文件.列举文件清单等等.只要灵活应用这些功能的 话,那么对于系统工程师的日常工作就能够起到事半功倍的效果. 一.利用Find命令对文件进行备份. 如在Unix操作系统中有一个用户为oracle.系统会在Home目录下自动为这个用户创建一个子目录 Oracle.现在用户希望能够对自己目录下的文件进行自动备份,以防止文件的以外丢失.如下图所示, 现在系统工程师准