Linux路径切换命令——directory stack
操作directory stack一共需要3个命令:
dirs 、pushd、popd
- dirs: 显示当前目录栈
- pushd: 把目录压栈
- popd: 把目录弹栈
dirs
显示目录栈内容,如果没有被pushd过,或者popd到底了,此时dirs会显示当前目录,就等价于pwd了
-c 清空目录栈
-l 不显示~开头的目录
[root@localhost ~]# dirs
~ ~ /tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1
[root@localhost ~]# dirs -l
/root /root /tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1
-p 显示目录栈,每个条目占一行
[root@localhost ~]# dirs -p
~
~
/tmp/dir4
/tmp/dir3
/tmp/dir2
/tmp/dir1
-v 显示目录栈,每个条目占一行,并且用序号标出条目在栈中的标号
[root@localhost ~]# dirs -v
~
~
/tmp/dir4
/tmp/dir3
/tmp/dir2
/tmp/dir1
如果想把~替换掉,不能-vl一起使用。这个命令比较怪,虽有单个选项不能组合写。
[root@localhost ~]# dirs -vl
-bash: dirs: -vl: invalid number
dirs: usage: dirs [-clpv] [+N] [-N]
[root@localhost ~]# dirs -v -l
/root
/root
/tmp/dir4
/tmp/dir3
/tmp/dir2
/tmp/dir1
pushd
上面说到dirs显示目录栈内容。即使目录栈被popd到底,提示:
[root@localhost dir1]# popd
-bash: popd: directory stack empty
目录栈实际上并没有空,此时执行dirs还是能看到目录(和pwd一样了)。如果此时pushd dir,在目录栈中dir是排在之前pwd显示目录之前的。

此时执行pushd不带参数,不带路径,会提示:
[root@localhost /]# pushd
-bash: pushd: no other directory
因为此时目录栈中只有一个目录,没办法两个目录兑换位置
pushd dir :将dir加到directory stack栈顶。入栈的过程中也会显示之前已经在栈里面的内容。并且入栈后,还会切换到这个目录(-n可以阻止这种行为)
[root@localhost dir3]# cd /tmp/dir4
[root@localhost dir4]# pushd .
/tmp/dir4 /tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1
pushd :如果不加参数,把栈顶2个条目对换位置
[root@localhost dir4]# dirs -p
/tmp/dir4
/tmp/dir3
/tmp/dir2
/tmp/dir1
/
[root@localhost dir4]# pushd
/tmp/dir3 /tmp/dir4 /tmp/dir2 /tmp/dir1 /
[root@localhost dir3]# dirs -p
/tmp/dir3
/tmp/dir4
/tmp/dir2
/tmp/dir1
/
pushd +N :将(从上到下,以0开始)第几个移到栈顶
pushd -N :将(从下到上,以0开始)第几个移到栈顶
[root@localhost dir3]# dirs -v
/tmp/dir3
/tmp/dir4
/tmp/dir2
/tmp/dir1
/
[root@localhost dir3]# pushd +
/tmp/dir4 /tmp/dir2 /tmp/dir1 / /tmp/dir3
[root@localhost dir4]# dirs -v
/tmp/dir4
/tmp/dir2
/tmp/dir1
/
/tmp/dir3
[root@localhost dir4]# pushd -
/ /tmp/dir3 /tmp/dir4 /tmp/dir2 /tmp/dir1
[root@localhost /]# dirs -v
/
/tmp/dir3
/tmp/dir4
/tmp/dir2
/tmp/dir1
popd
不加参数时,默认行为弹出栈顶目录并且换到该目录。使用-n可以不切换目录
popd +N :将(从上到下,以0开始)第几个删除,栈中原有条目位置不变
popd -N :将(从下到上,以0开始)第几个删除,栈中原有条目位置不变
[root@localhost dir4]# dirs -v
/tmp/dir4
/tmp/dir3
/tmp/dir2
/tmp/dir1
/
[root@localhost dir4]# popd +
/tmp/dir4 /tmp/dir2 /tmp/dir1 /
[root@localhost dir4]# dirs -v
/tmp/dir4
/tmp/dir2
/tmp/dir1
/
[root@localhost dir4]# popd -
/tmp/dir4 /tmp/dir2 /
[root@localhost dir4]# dirs -v
/tmp/dir4
/tmp/dir2
/
除了目录栈用于切换目录,还可以使用Autojump和bd
上面高级目录切换技术,即使最小化安装Linux也有。后面2中技术,需要单独安装
Autojump
Autojump使用Python编写
bd
bd:快速返回某级父目录而不用冗余地输入 “cd ../../..”
Linux路径切换命令——directory stack的更多相关文章
- Linux 路径与命令搜寻顺序
以相对/绝对路径运行命令,例如『 /bin/ls 』或『 ./ls 』: 由 alias 找到该命令来运行: 由 bash 内建的 (builtin) 命令来运行: 透过 $PATH 这个变量的顺序搜 ...
- Linux | 浏览(切换)目录命令
例出目录和文件 --> ls ls 命令是最常用的 Linux 命令之一,ls 是 list 的缩写,表示:列出 在 Linux 中 ls 命令用于列出文件和目录 一些常用的参数 ls -a # ...
- linux 底层 基础命令 路径信息
z基础命令: 打印 :echo "hello world“ 切换目录 cd / 显示当前路径 pwd 显示 目录下所有文件 ls 显示所有文件包括隐藏文件 ls ...
- Linux桌面与命令行切换
1.首先在安装Linux的时候是选则Desktop桌面方式安装 2.切换命令 2.1快捷键:Ctrl+Alt+F1 切换到桌面模式 Ctrl+Alt+F3 切换到命令行模式
- Linux - 系统路径加入命令
系统路径加入命令 本文地址: http://blog.csdn.net/caroline_wendy 1. 在根文件夹建立bin文件夹: $mkdir bin 2. 改动".bash_pro ...
- linux 前台后台程序切换命令总结
1.在Linux终端运行命令的时候,在命令末尾加上 & 符号,就可以让程序在后台运行 root@Ubuntu$ ./tcpserv01 & 2.如果程序正在前台运行,可以使用 Ctrl ...
- Linux下ls命令显示符号链接权限为777的探索
Linux下ls命令显示符号链接权限为777的探索 --深入ls.链接.文件系统与权限 一.摘要 ls是Linux和Unix下最常使用的命令之一,主要用来列举目录下的文件信息,-l参数允许查看当前目录 ...
- 例解 Linux 下 Make 命令
Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一.管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题.本文我们将用一些实例来讨论 make ...
- Linux系统常用命令权威指南
<一>线上查询及帮助命令(2)1.man man [选项] [命令] 查看命令帮助,命令的词典,更复杂的还有info,但不常用. #man cd-a 显示所有的手册页,不只是显示第一个-f ...
随机推荐
- iOS-浅谈iOS中三种生成随机数方法
ios 有如下三种随机数方法:
- 01.轮播图之五 :一个 imageView也能 作 轮播
这个是最近才写的,本以为实现起来很有难度,需要更高深的理论, 写完之后,才发现自己错误的离谱: 之所以能用一个imageview 实现轮播 基于两点::: 使用 imageview 的layer 层设 ...
- linux下的进程通信之管道与FIFO
概念:管道是由内核管理的一个缓冲区,相当于我们放入内存中的一个纸条.管道的一端连接一个进程的输出.这个进程会向管道中放入信息.管道的另一端连接一个进程的输入,这个进程取出被放入管道的信息. 优点:不需 ...
- 记录git 软件库
https://github.com/phpredis/phpredis redis扩展 https://github.com/tecnickcom/tcpdf 生成PDF 后续......
- spring boot 复选框
jsp代码 技能: <form:checkboxes path="jineng" items="${jinengItme}" /> spring代码 ...
- 超级块,i节点,数据块,目录块,间接块
一.物理磁盘到文件系统 文件系统用来存储文件内容,文件属性,和目录,这些类型的数据如何存储在磁盘块上的呢?Unix/linux使用了一个简单的方法. 他将磁盘分为3个部分: 超级块,文件系统中第一个块 ...
- Mstering QT5 chapter1
涉及到c++ 14新特性: lambda,autovariables. A basic .pro file generally contains: 1) Qt modules used (core, ...
- TypeScript 枚举
我们常常会有这样的场景,比如与后端开发约定订单的状态开始是0,未结账是1,运输中是2,运输完成是3,已收货是4.这样的纯数字会使得代码缺乏可读性.枚举就用于这样的场景.枚举可以让我们定义一些名字有意义 ...
- setting中executable for debug session对话框
- 新浪sae对storage的文档进行读写操作
有的人喜欢将一些数据写在服务器的文件里面,并不喜欢存在mysql里,但新浪sae却不支持对本地文件进行操作. 不过sae拓展了一个storage的服务,可以将一些静态文件放在上面.本文不介绍文件的上传 ...