工作中经常遇到关于目录方面的问题,例如,如何只列出当前目录下的所有目录,以及如何快速高效切换目录,而不需要使用鼠标,下面将简单介绍关于这两方面的解决方案:

一、如何只列出目录?

看似简单的任务,其实就算是linux水平不错的人都有可能被这个问题难住。

下面介绍4种方法列出当前路径下的目录:

1.ls -d *

amosli@amosli-pc:~$ ls -d *
%APPDATA% develop many sorted.txt workspace
bank Documents Music space 下载
c:javagc.log Downloads Navicat Templates 图片
cnblogs eclipse222 Pictures temp.png 桌面
data.txt examples.desktop project tmp
da.txt gitrepo Public tmp.zip
ddd home scriptfifo Ubuntu One
Desktop learn socialcredit_metrix.py Videos

2. find . -type d -maxdepth 1

如果不加-maxdepth 参数的话那么将会有无穷多目录被列出来。

amosli@amosli-pc:~$ find . -type d -maxdepth 
.......
./Videos
./Public
./%APPDATA%
./.kde
./.gnome2
./Music
./.local
./.pip
./Documents
./many
./develop
./Pictures
./.mozilla
./eclipse222
./.qq2012
./tmp
./gitrepo
./.netbeans
./.macromedia
./.thumbnails
./.sunpinyin
./learn
./.compiz-
./桌面
.......

3.ls -F | grep '/$'

使用linux管道命令,grep查找 '/$' 以/结尾的,也即是目录

amosli@amosli-pc:~$ ls -F | grep '/$'
%APPDATA%/
bank/
Desktop/
develop/
Documents/
Downloads/
eclipse222/
gitrepo/
learn/
many/
Music/
Navicat/
Pictures/
project/
Public/
space/
Templates/
tmp/
Ubuntu One/
Videos/
workspace/
下载/
图片/
桌面/

4.ls -l | grep '^d'

amosli@amosli-pc:~$ ls -l | grep '^d'
drwxr-xr-x amosli amosli 6月 %APPDATA%
drwxr-xr-x amosli amosli 12月 : bank
drwxr-xr-x amosli amosli 12月 : Desktop
drwxrwxr-x amosli amosli 12月 : develop
drwxr-xr-x amosli amosli 7月 : Documents
drwxr-xr-x amosli amosli 12月 : Downloads
drwxr-sr-x amosli amosli 7月 : eclipse222
drwxrwxr-x amosli amosli 7月 : gitrepo
drwxrwxr-x amosli amosli 12月 : learn
drwxr-xr-x amosli root 6月 many
drwxr-xr-x amosli amosli 12月 : Music
drwxr-xr-x root root 8月 : Navicat
drwxr-xr-x amosli amosli 12月 : Pictures
drwxrwxr-x amosli amosli 12月 : project
drwxr-xr-x amosli amosli 12月 : Public
drwxr-xr-x amosli amosli 8月 : space
drwxr-xr-x amosli amosli 12月 : Templates
drwxrwxr-x amosli amosli 8月 : tmp
drwxrwxr-x amosli amosli 8月 : Ubuntu One
drwxr-xr-x amosli amosli 12月 : Videos
drwxr-xr-x amosli amosli 10月 : workspace
drwxr-xr-x amosli amosli 12月 : 下载
drwxr-xr-x amosli amosli 9月 : 图片
drwxr-xr-x amosli amosli 12月 : 桌面

二、如何快速切换目录?

切换目录的方式有很多种,最常用的莫过于cd 命令了,但在没有GUI(图形用户界面),只能通过命令行进行访问的时候,就很难处理涉及多路径之间的跳转切换了。

这里介绍四个命令 pushd,popd,dirs,cd -

1.cd - 作用是快速切换到前一个目录,如下:

amosli@amosli-pc:~$ cd learn/fd/
amosli@amosli-pc:~/learn/fd$ cd -
/home/amosli

2.dirs:显示目录栈,列出当前堆栈中保存的目录列表

amosli@amosli-pc:~/learn/fd$ dirs
~/learn/fd

说明: dirs的 -p参数可以每行一个目录的形式显示堆栈中的目录列表
-v参数可以在目录前加上编号
注意:有 -v时,不添加 -p也可以每行一个目录的形式显示

amosli@amosli-pc:~/learn/fd$ dirs -p -v
~/learn/fd

入堆栈的目录位于最上面

3.pushd,popd命令介绍

pushd:切换到作为参数的目录,并把原目录和当前目录压入到一个虚拟的堆栈中

如果不指定参数,则会回到前一个目录,并把堆栈中最近的两个目录作交换

popd: 移除堆栈中最近的目录

amosli@amosli-pc:/$ pushd bin/
/bin /
amosli@amosli-pc:/bin$ pushd /home/amosli/learn/fd/
~/learn/fd /bin /
amosli@amosli-pc:~/learn/fd$ dirs -p -v
~/learn/fd
/bin
/
amosli@amosli-pc:~/learn/fd$ pushd /home/amosli/develop/
~/develop ~/learn/fd /bin /
amosli@amosli-pc:~/develop$ dirs -p -v
~/develop
~/learn/fd
/bin
/

上面使用pushd命令分别将 /、bin/ 、/home/amosli/learn/fd/ 、/home/amosli/develop/ 4个目录压入栈中,栈是后进先出的(LIFO,last in first out)的数据结构。

那么如何切换目录?

1)如果是直接pushd不加参数的话就直接切换到最近的目录

amosli@amosli-pc:~/develop$ pushd
~/learn/fd ~/develop /bin /
amosli@amosli-pc:~/learn/fd$

2)pushd  +n

也可以后面跟上数字直接切换到相应的目录。如切换到/(根目录),如下:

amosli@amosli-pc:~/learn/fd$ pushd +
/ ~/learn/fd ~/develop /bin
amosli@amosli-pc:/$ ls

如何移除目录?

1)popd 直接移除最近的一条目录

amosli@amosli-pc:/$ dirs -p -v
/
~/learn/fd
~/develop
/bin
amosli@amosli-pc:/$ popd
~/learn/fd ~/develop /bin
amosli@amosli-pc:~/learn/fd$ dirs -p -v
~/learn/fd
~/develop
/bin

2)popd +n

直接跟上数字移除指定的目录

amosli@amosli-pc:~/learn/fd$ popd +
~/learn/fd /bin
amosli@amosli-pc:~/learn/fd$ dirs -p -v
~/learn/fd
/bin

linux shell 脚本攻略学习15--如何只列出目录,如何快速切换目录的更多相关文章

  1. linux shell 脚本攻略学习20--awk命令入门详解

    awk生于1977年,创始人有三个,分别为 Alfred Aho,Peter Weinberger, 和 Brian Kernighan,名称源于三个创始人的姓的首字母. 作用:处理文本文件. awk ...

  2. Linux Shell脚本攻略学习总结:一

    终端打印 终端打印的常用命令有两个:echo和print 首先,我先介绍echo 1.echo echo这个命令接受三种形式的参数,实例如下: echo "Hello World" ...

  3. linux shell 脚本攻略学习18--grep命令详解

    grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是unix/linux中用于文本搜索 ...

  4. Linux Shell 脚本攻略学习--四

    linux中(chattr)创建不可修改文件的方法 在常见的linux扩展文件系统中(如ext2.ext3.ext4等),可以将文件设置为不可修改(immutable).某些文件属性可帮助我们将文件设 ...

  5. linux shell 脚本攻略学习19--sed命令详解

    sed(意为流编辑器,英语“stream editor”的缩写)是Unix/linux常见的命令行程序.sed用来把文档或字符串里面的文字经过一系列编辑命令转换为另一种格式输出,即文本替换.sed通常 ...

  6. linux shell 脚本攻略学习3

    1.Bash中的READ命令 #读取n个字符存入变量 read -n number_of_chars variable_name 示例: amosli@amosli-pc:~$ read -n var ...

  7. linux shell 脚本攻略学习2

    1.关于文件描述符和重定向: 文件描述符是与一个打开的文件或数据流相关联的整数.文件描述符0.1以及2是系统预留的. 0——stdin(标准输入) 1——stdout(标准输出) 2——stderr( ...

  8. Linux Shell脚本攻略学习总结:三

    根据扩展名切分文件名 首先,我们先来看两个例子: file_jpg="sample.jgp" name=${file_jpg%.*} echo File name is : $na ...

  9. Linux Shell脚本攻略学习总结:二

    比较与测试 程序中的流程控制是由比较和测试语句来处理的. 我们可以用if,if else 以及逻辑运算符来执行测试,而用一些比较运算符来比较数据项.另外,有一个test 命令也可以用来进行测试.让我们 ...

随机推荐

  1. 解剖android中的闹钟app 一

    首先,看一看android市场上有哪些主流的闹钟app了,我们来进行一个简单的评测: 一.正点闹钟 这是一款源自金山技术的闹钟app,其主力创始团队都是来自于金山,其装机量,下载量都是排名第一.老样子 ...

  2. ML&DL视频教程资源

    作者:Bruce链接:https://www.zhihu.com/question/49909565/answer/345894856来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  3. jsp table 表格单元格编辑示例

    列表单元格: //两个 隐藏的 input, 第一个存 记录 id, 单元格内容是排序码 : <td id="ordinal"><%=ordinal%> & ...

  4. [转]PostgreSQL Replication之扩展与BDR

    原文:https://www.cnblogs.com/xmzzp/p/6284300.html postgres 实现master, slave ,且master是多主. -------------- ...

  5. 原:wireshare使用技巧收集

    /data/local/tcpdump -p -vv -s 0 -w /sdcard/ThinkDrive.pcap     先抓一个pcap的包. 1. 查看所有的链接与流量 统计->对话 这 ...

  6. (文档)Shader.Find (在编译时,只包含那些使用中的shader或位置在"Resources"文件夹中shader)

    Shader.Find 查找 static function Find (name : string) : Shader Description描述 Finds a shader with the g ...

  7. Maven镜像收集

    本贴主要收集国内国外速度比较快的maven镜像,OSC的MAVEN已经关闭了 0.阿里Maven镜像 setting.xml https://github.com/ae6623/Zebra/blob/ ...

  8. XE6入门(一)Hello World

    XE6的IDE已经设计的非常棒了,是该放弃D7了,投入XE6的怀抱.. 本人用的XE6版本是 Embarcadero.Delphi.XE6.RTM.Inc.Update1.v20.0.16277.12 ...

  9. dcm4che,WADO相关

    关于 dcm4che WADO WADO:Web Access to DICOM Objects dcm4che 是一个为医疗保健企业的开源应用程序和工具集合.这些应用程序已经开发了Java编程语言的 ...

  10. #define barrier() __asm__ __volatile__("": : :"memory") 中的memory是gcc的东西

    gcc内嵌汇编简介 在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作 ...