操作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的更多相关文章

  1. Linux 路径与命令搜寻顺序

    以相对/绝对路径运行命令,例如『 /bin/ls 』或『 ./ls 』: 由 alias 找到该命令来运行: 由 bash 内建的 (builtin) 命令来运行: 透过 $PATH 这个变量的顺序搜 ...

  2. Linux | 浏览(切换)目录命令

    例出目录和文件 --> ls ls 命令是最常用的 Linux 命令之一,ls 是 list 的缩写,表示:列出 在 Linux 中 ls 命令用于列出文件和目录 一些常用的参数 ls -a # ...

  3. linux 底层 基础命令 路径信息

    z基础命令: 打印 :echo "hello world“ 切换目录   cd  / 显示当前路径     pwd 显示 目录下所有文件     ls 显示所有文件包括隐藏文件    ls ...

  4. Linux桌面与命令行切换

    1.首先在安装Linux的时候是选则Desktop桌面方式安装 2.切换命令 2.1快捷键:Ctrl+Alt+F1    切换到桌面模式 Ctrl+Alt+F3    切换到命令行模式

  5. Linux - 系统路径加入命令

    系统路径加入命令 本文地址: http://blog.csdn.net/caroline_wendy 1. 在根文件夹建立bin文件夹: $mkdir bin 2. 改动".bash_pro ...

  6. linux 前台后台程序切换命令总结

    1.在Linux终端运行命令的时候,在命令末尾加上 & 符号,就可以让程序在后台运行 root@Ubuntu$ ./tcpserv01 & 2.如果程序正在前台运行,可以使用 Ctrl ...

  7. Linux下ls命令显示符号链接权限为777的探索

    Linux下ls命令显示符号链接权限为777的探索 --深入ls.链接.文件系统与权限 一.摘要 ls是Linux和Unix下最常使用的命令之一,主要用来列举目录下的文件信息,-l参数允许查看当前目录 ...

  8. 例解 Linux 下 Make 命令

    Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一.管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题.本文我们将用一些实例来讨论 make ...

  9. Linux系统常用命令权威指南

    <一>线上查询及帮助命令(2)1.man man [选项] [命令] 查看命令帮助,命令的词典,更复杂的还有info,但不常用. #man cd-a 显示所有的手册页,不只是显示第一个-f ...

随机推荐

  1. 是什么在阻止我们学习unity2019?

    背景 时过境迁,这是一篇老文,写于2019年5月. 在学习最新的unity ecs过程中,以及学习最新的effect 时,在迈出第一步的时候即遭遇一些困难(学习和测试环境搭建不起来,有时候真的很无语) ...

  2. rest_framework之ModelViewSet、路由控制、序列化组件快速搭建项目雏形

    以UserInfo表登陆接口为例 ModelViewSet的用法十分简单,定义一个视图类,指定一个模型表,指定一个序列化类即可帮我们完成增删改查等功能 示例: # 视图层 from app01.MyS ...

  3. 【leetcode算法-简单】66. 加一

    [题目描述] 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示 ...

  4. 《Tsinghua os mooc》第15~16讲 处理机调度

    第十五讲 处理机调度 进程调度时机 非抢占系统中,当前进程主动放弃CPU时发生调度,分为两种情况: 进程从运行状态切换到等待状态 进程被终结了 可抢占系统中,中断请求被服务例程响应完成时发生调度,也分 ...

  5. 【转帖】一文看懂docker容器技术架构及其中的各个模块

    一文看懂docker容器技术架构及其中的各个模块 原创 波波说运维 2019-09-29 00:01:00 https://www.toutiao.com/a6740234030798602763/ ...

  6. Docker部署Gitlab11.10.4

    1.下载镜像 官方镜像地址:https://hub.docker.com/r/gitlab/gitlab-ce ,根据自己需要下载指定版本 [root@vanje-dev01 ~]# docker p ...

  7. Windows用Eclipse来开发hadoop的WordCount的helloworld

    [学习笔记] 2.Win7用Eclipse来开发hadoop的WordCount的helloworld网上下载hadoop-eclipse-plugin-2.7.4.jar,将该jar包拷贝到Ecli ...

  8. python学习-17 列表list 2

    # 1. 选择嵌套列表里的元素(内部进行了for循环) li = [1,2,",45]],"abc",True] a = li[3][2][1] print(a) 运行结 ...

  9. Python习题006

    作业一:打印10*10  星星 ★☆ 要求一:普通打印★ l = 0 while l <10: h = 0 while h < 9: print("★", end=&q ...

  10. zabbix硬件监控以及服务

    大家好今天给大家带来zabbix3.4.8监控主机,那么最近由于我个人的关系.没有及时的更新文章所以,很抱歉那么今天我分享的内容是zabbix3.4.8监控服务器.本章的具体监控服务器如下: 服务器的 ...