linux shell之pushd、popd、dirs

简介: linux shell之pushd、popd、dirs

1 问题

我们有时候需要保存多个路径,上下键切换不方便,用cd-只能到上个目录,我们可以用dirs和pushd和popd


2 dirs、pushd、popd

dirs: 这个命令显示栈里面所有的路径,一定会包含当前路径,常用参数如下


dirs -v 显示栈里面的所有路径和下标,通过下标,我们可以用pushd +下标到这个目录,然后popd+下标把这个路径在栈里面弹出来,


dirs -c 清除栈里所有路径,但是当前路径不会删除


pushd:我们可以添加目录到栈(dirs)里面,比如添加当前目录pushd .  然后如果需要到栈里面具体哪个路径的话我们可以pushd +下标,如果是-下标的话,我们是从栈底算起


popd:我们可以弹出栈的最上面的一个路径,我们也可以popd +n弹出栈里面指定的具体路径,如果是-下标的话,我们是从栈底算起


3 使用过程

比如我们在当前目录下新建立4个文件夹dir1、dir2、dir3、dir4


我们cd到dir1里面去,然后把当前路径再添加进去pushd .


我们cd到dir2里面去,然后把当前路径再添加进去pushd .


我们cd到dir3里面去,然后把当前路径再添加进去pushd .


我们cd到dir4里面去,然后把当前路径再添加进去pushd .


我们再查看dirs -v

 0  ~/Desktop/linux/dabian/shell/cat/push/dir3
 1  ~/Desktop/linux/dabian/shell/cat/push/dir3
 2  ~/Desktop/linux/dabian/shell/cat/push/dir4
 3  ~/Desktop/linux/dabian/shell/cat/push/dir2
 4  ~/Desktop/linux/dabian/shell/cat/push/dir1

很明显当前目录是dir3,比如我们现在要去dir2,我们直接执行pushd +3  再执行dirs -v看下

0  ~/Desktop/linux/dabian/shell/cat/push/dir2
1  ~/Desktop/linux/dabian/shell/cat/push/dir1
2  ~/Desktop/linux/dabian/shell/cat/push/dir3
3  ~/Desktop/linux/dabian/shell/cat/push/dir3
4  ~/Desktop/linux/dabian/shell/cat/push/dir4

很明显我们可以看到当前目录是dir2

比如我们执行下popd,弹出最顶层的那个,目录会切换到最dir1,我们再看下dirs -v

 0  ~/Desktop/linux/dabian/shell/cat/push/dir1
 1  ~/Desktop/linux/dabian/shell/cat/push/dir3
 2  ~/Desktop/linux/dabian/shell/cat/push/dir3
 3  ~/Desktop/linux/dabian/shell/cat/push/dir4

然后我们删除dir4看下,popd +4,然后我们再dirs -v看下

 0  ~/Desktop/linux/dabian/shell/cat/push/dir1
 1  ~/Desktop/linux/dabian/shell/cat/push/dir3
 2  ~/Desktop/linux/dabian/shell/cat/push/dir3


很明显当前目录在dir1,我们切换到dir3里面去,pushd +2 然后dirs -v看下

 0  ~/Desktop/linux/dabian/shell/cat/push/dir3
 1  ~/Desktop/linux/dabian/shell/cat/push/dir1
 2  ~/Desktop/linux/dabian/shell/cat/push/dir3

可以看到到了dir3这个目录了,我们再清除所有的栈里面的路径dirs -c,然后我们再dirs看下

~/Desktop/linux/dabian/shell/cat/push/dir3

在当前目录了,没毛病。


相关文章
|
5天前
|
安全 Shell Linux
探索Linux命令chsh:更改用户的默认shell
`chsh`是Linux命令,用于更改用户的默认登录shell。它涉及用户环境配置和系统安全,允许用户选择更适合自己的shell以提升效率。命令有交互式选项和参数如`-s`来指定新shell。在使用时要注意新shell的可执行性、权限问题及选择合适的shell。例如,要更改为bash,用户可运行`chsh`后按提示操作,而root用户能用`sudo chsh -s /bin/zsh john`为用户`john`设定zsh。在更改前,确认shell路径、权限,并了解不同shell的特点。
|
6天前
|
监控 Shell Linux
Linux的Shell脚本详解
Linux的Shell脚本详解
|
18天前
|
Ubuntu Java Linux
Linux centos7 ubuntu 一键安装Java JDK 脚本 shell 脚本
Linux centos7 ubuntu 一键安装Java JDK 脚本 shell 脚本
|
18天前
|
Shell Linux
shell linux中shell脚本编写俄罗斯方块
shell linux中shell脚本编写俄罗斯方块
|
19天前
|
Shell Linux Perl
Linux shell脚本sed使用
Linux shell脚本sed使用
|
18天前
|
Ubuntu Shell Linux
linux shell 后台执行脚本的方法 脚本后台运行 后台运行程
linux shell 后台执行脚本的方法 脚本后台运行 后台运行程
|
18天前
|
监控 Shell Linux
shell linux中用shell写一个占用CPU的脚本
shell linux中用shell写一个占用CPU的脚本
|
19天前
|
Shell Linux
linux shell 脚本实现:根据文件内容中的每行分隔符放入数组,根据规则打印日志并重新创建目录 备份文件
linux shell 脚本实现:根据文件内容中的每行分隔符放入数组,根据规则打印日志并重新创建目录 备份文件
|
19天前
|
Shell Linux BI
linux shell脚本中 if 条件判断
linux shell脚本中 if 条件判断
|
19天前
|
Shell Linux
linux shell脚本字符串 字段分隔符 存入数组 根据下标取值
linux shell脚本字符串 字段分隔符 存入数组 根据下标取值