[翻译]Linux命令行技巧3
November 16th, 2009 — 11:01am
3.将mkdir和cd合并为一条命令
一般你创建一个新的目录后,你想进入这个目录需要在执行cd
如下所示:
# mkdir -p /tmp/subdir1/subdir2/subdir3
# cd /tmp/subdir1/subdir2/subdir3
# pwd
/tmp/subdir1/subdir2/subdir3
通过下列配置将cd和mkdir合并为一条命令
$ vi .bash_profile
function mkdircd () { mkdir -p “$@” && eval cd
“\”\$$#\”"; }
测试一下合并后的命令
# mkdircd /tmp/subdir1/subdir2/subdir3
[注意: 此时创建目录并自动进入创建的目录]
# pwd
/tmp/subdir1/subdir2/subdir3
4.使用“cd-”在最后进入的两个目录中切换
如下所示
# cd /tmp/very/long/directory/structure/that/is/too/deep
# cd /tmp/subdir1/subdir2/subdir3
# cd -
# pwd
/tmp/very/long/directory/structure/that/is/too/deep
# cd -
# pwd
/tmp/subdir1/subdir2/subdir3
# cd -
# pwd
/tmp/very/long/directory/structure/that/is/too/deep
使用dirs,pushd和popd对目录进行栈操作
压入弹出目录栈主要是通过下列三个命令完成的
o dirs: 显示目录栈
o pushd: 压入目录栈
o popd: 弹出目录栈
dir输入当前目录栈中的内容,如果目录栈为空,则输入
当前目录的内容,如下所示:
# popd
-bash: popd: directory stack empty
# dirs
~
# pwd
/home/ramesh
如何运用pushd和popd呢?首先创建些零时目录,然后
将他们压入栈中,如下所示:
# mkdir /tmp/dir1
# mkdir /tmp/dir2
# mkdir /tmp/dir3
# mkdir /tmp/dir4
# cd /tmp/dir1
# pushd .
# cd /tmp/dir2
# pushd .
# cd /tmp/dir3
# pushd .
# cd /tmp/dir4
# pushd .
# dirs
/tmp/dir4 /tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1
[注意: 命令行中第一个输出的目录(/tmp/dir4)是当前文件夹
下的目录名,不是目录栈中的]
当前目录栈中的内容
/tmp/dir4
/tmp/dir3
/tmp/dir2
/tmp/dir1
最后压入栈中的总是显示在最上方,当你执行popd,将
首先弹出他,如下所示,最后压入的是/tmp/dir4,所以
当执行popd,将弹出/tmp/dir4
# popd
# pwd
/tmp/dir4
[注意: 若执行popd之后,栈中内容为:
/tmp/dir3
/tmp/dir2
/tmp/dir1]
# popd
# pwd
/tmp/dir3
[注意: 若执行popd之后,栈中内容为:
/tmp/dir2
/tmp/dir1]
# popd
# pwd
/tmp/dir2
[注意: 若执行popd之后,栈中内容为:
/tmp/dir1]
# popd
# pwd
/tmp/dir1
[注意: 若执行popd之后,栈中内容为空!]
# popd
-bash: popd: directory stack empty
原书下载 Free eBook: Linux 101 Hacks

Comment » | Linux101Hacks, 技术, 翻译