--------------------------------------------------------------------------------
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