在命令行中使用pushd和popd进行快速切换目录
当频繁的切换三个或三个以上的目录的时候,可以使用pushd命令。每次使用目录路径被存储在栈中,然后用pushd和popd操作在目录之间切换。
例如:
[root@gameserver1 ~]# pushd /data/game/ /data/game ~ [root@gameserver1 game]# pwd /data/game [root@gameserver1 game]# pushd /var/log/nginx/ /var/log/nginx /data/game ~ [root@gameserver1 nginx]# pwd /var/log/nginx [root@gameserver1 nginx]# pushd /etc/my.cnf.d/ /etc/my.cnf.d /var/log/nginx /data/game ~ [root@gameserver1 my.cnf.d]# pwd /etc/my.cnf.d
以上三个目录切换的时候我采用的pushd的方式切换,使用下面的命令来查看栈里存储的内容:
[root@gameserver1 my.cnf.d]# dirs /etc/my.cnf.d /var/log/nginx /data/game ~ 0 1 2
当你想切换到列表中的任意一个路径的时候,将每条路径从0到n进行编号,然后使用你希望切换到的路径编号,例如:
[root@gameserver1 my.cnf.d]# pushd +1 /var/log/nginx /data/game ~ /etc/my.cnf.d [root@gameserver1 nginx]# pwd /var/log/nginx
然后就切换到/var/log/nginx目录下了
要删除最后添加的路径并把当前目录更改为上一级目录,可以使用以下命令:
/var/log/nginx /data/game ~ /etc/my.cnf.d [root@gameserver1 nginx]# popd /data/game ~ /etc/my.cnf.d
使用popd +num可以从列表中移除特定的路径,num是从左到右,从0到n开始计数的。
但如果只有两个目录的时候,还有更便捷的方法:cd -
[root@gameserver1 game]# cd /var/www [root@gameserver1 www]# cd /etc/nginx/ [root@gameserver1 nginx]# cd - /var/www [root@gameserver1 www]# cd - /etc/nginx [root@gameserver1 nginx]# cd - /var/www