linux目录栈使用

--------------------------------------------------------------------------------
author: hjjdebug
date: 2012-07-04
--------------------------------------------------------------------------------
前言:
    使用linux目录栈的目的: 储存工作目录,加快目录切换,提高工作效率。
题外话.
    windows 下有一个图形化的wincmd, 也一直是我的最爱,它的杰出的地方,
    一个是它的目录存储,一个是它的双窗口操作。
    演示: 178机器上 adtv 下的目录切换。

实现:
1. 建立一个目录列表文件。
例如:
gitserver@gitserver-desktop:~$ cat .pushdirs
pushd ~/share/hjj
pushd ~/share/android4.0.3/external/adtv/tvcore/tvplayer/ 1>/dev/null
pushd ~/share/android4.0.3/external/adtv/stbruntime/ 1>/dev/null
pushd ~/share/android4.0.3/external/adtv/tvcore/stbca 1>/dev/null
pushd ~/share/android4.0.3/external/adtv/tvcore/tvsearch/tvsearchlocal/ 1>/dev/null
pushd ~/share/android4.0.3/external/adtv/tvcore/tvsearch/tvsearchcore/ 1>/dev/null
pushd ~/share/android4.0.3/ 1>/dev/null
popd -0
#echo "source build/envsetup.sh"
#source build/envsetup.sh

2. 加载这个文件。
    手工: 只要 source .pushdirs 就可以了。
    自动: 在 .bashrc 中添加 source ~/.pushdirs/ 1>/dev/null

3. 使用: 参考演示。
     在 .bashrc 中添加两个alias
    alias pd='pushd'
    alias dl='dirs -p'
    用pd 来切换目录, 用dl 来查看目录栈状态。

ok! thands!

--------------------------------------------------------------------------------

补充。 为了为dirs -p 加上行号, 方便pushd 操作, 可以改为。

alias dl='dirs -p|num.pl'

其中num.pl 如下:

hjj@hjj-ubuntu:$ cat /usr/local/bin/num.pl
#!/usr/bin/perl -w
#
$num = 0;
while(<>)
{
        print "$num $_";
        $num++;
}

写这个perl 文件只是为了从0开始标注行号,

其实nl 已经有这个功能了,只是它默认从1开始标注, 让它从0开始标注也可以(看代码知道的),加个-v 参数就可以指定起始值了。

linux 命令都很强大,佩服!

例如: nl -v 0 1.txt

你可能感兴趣的:(linux,工作,windows,存储,图形)