• 一、ls
  • 1.1、 -a
  • 1.2 -A
  • 1.3、-l
  • 1.4、-d
  • 1.5、-f
  • 1.6、grep 结合 ls -F
  • 1.7、使用grep 结合 ls -l
  • 1.8、结合find
  • 二、pushd和popd
  • 2.1 pushd 压栈
  • 2.2 pushd切换目录
  • 2.3、 popd
  • 2.4、移除特定的路径


一、ls

ls 是list缩写,作用是list directory contents 列出目录内容

1.1、 -a

-a 等同与all 显示所有。

do not ignore entries starting with .

包含文件开头隐藏 的 ‘.’ 因为文件以 '.'开头

Linux脚本攻略学习笔记之ls、pushd、popd实例演示_pushd实例演示

1.2 -A

–almost-all do not list implied . and …

等同于 a ,但是不显示影藏 ‘.‘和’…’

Linux脚本攻略学习笔记之ls、pushd、popd实例演示_popd实例演示_02

1.3、-l

得到一个详细的文件和目录名列表.这个列表包含了文件的属性,所属用户,所属组,创建时间,文件大小等等信息。

Linux脚本攻略学习笔记之ls、pushd、popd实例演示_当前目录_03

1.4、-d

ls -d  */

列出当前路径下的目录

Linux脚本攻略学习笔记之ls、pushd、popd实例演示_popd实例演示_04

1.5、-f

列入当前路径下文件

Linux脚本攻略学习笔记之ls、pushd、popd实例演示_popd实例演示_05

1.6、grep 结合 ls -F

ls  -F | grep "/$"

-F参数使得ls命令可以使得所有的输出项都会添加上一个代表文件类型的字符,如 @ 、 * 、 | 等。目录对应

的是 / 字符。我们用 grep 只过滤那些以 /$ 作为行尾标记的输出项。

Linux脚本攻略学习笔记之ls、pushd、popd实例演示_popd实例演示_06

1.7、使用grep 结合 ls -l

ls -l  | grep "^d"

-l 命令查看一个目录下的文件和子目录的详悉信息时,会得到一个详细的文件和目录名列表

–d 输出的每一行的首字符表示文件类型。目录的文件类型字符是 “d” 。因此我们用 grep

过滤以 “d” 起始的行。 ^ 是行首标记

Linux脚本攻略学习笔记之ls、pushd、popd实例演示_Linux脚本攻略学习笔记_07

1.8、结合find

find -type d -maxdepth 1 -print
查找当前目录下所有目录

Linux脚本攻略学习笔记之ls、pushd、popd实例演示_pushd实例演示_08

二、pushd和popd

push 和 pop 利用后进先出(Last In First Out, LIFO)的数据结构。目录路径被存储在栈中。

2.1 pushd 压栈

当前目录 tail 下

pushd  /var/tmp

Linux脚本攻略学习笔记之ls、pushd、popd实例演示_pushd实例演示_09

栈中包含了 /var/tmp ~,当前目录切换到 /var/tmp
再压一次

pushd  /home/wanghao

Linux脚本攻略学习笔记之ls、pushd、popd实例演示_popd实例演示_10

看到栈中目录有: ~/study /var/tmp ~/study/tail

当前目录是 ~/study

dirs 查看栈中内容

Linux脚本攻略学习笔记之ls、pushd、popd实例演示_Linux脚本攻略学习笔记_11

2.2 pushd切换目录

当你想切换到列表中任意一个路径时,将每条路径从0到n进行编号,然后使用你希
望切换到的路径编号,例如:

pushd +2

根据dirs查看栈的内容,可知2可以切换到/tail目录下

Linux脚本攻略学习笔记之ls、pushd、popd实例演示_pushd实例演示_12

2.3、 popd

要删除最后添加的路径并把当前目录更改为上一级目录,可以使用以下命令:

popd

假设现在栈包含~/study/tail ~/study /var/tmp,当前目录是~/study/tail,popd会将var/tmp进行出栈操作,即删除。并将栈更改为 ~/study /var/tmp,把目录切换到~/study。

2.4、移除特定的路径

用 popd +num 可以从列表中移除特定的路径。

num 是从左到右,从0到n开始计数的。

当前栈中目录如下

Linux脚本攻略学习笔记之ls、pushd、popd实例演示_pushd实例演示_13

popd +1

则删除 ~/study,结果如下:

Linux脚本攻略学习笔记之ls、pushd、popd实例演示_Linux脚本攻略学习笔记_14