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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/whandgdh/article/details/85067206

一、ls

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

1.1、 -a

-a 等同与all 显示所有。
do not ignore entries starting with .
包含文件开头隐藏 的 ‘.’ 因为文件以 '.'开头
在这里插入图片描述

1.2 -A

–almost-all do not list implied . and …
等同于 a ,但是不显示影藏 ‘.‘和’…’
在这里插入图片描述

1.3、-l

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

1.4、-d

 ls -d  */

列出当前路径下的目录
在这里插入图片描述

1.5、-f

列入当前路径下文件
在这里插入图片描述

1.6、grep 结合 ls -F

ls  -F | grep "/$"

-F参数使得ls命令可以使得所有的输出项都会添加上一个代表文件类型的字符,如 @ 、 * 、 | 等。目录对应
的是 / 字符。我们用 grep 只过滤那些以 /$ 作为行尾标记的输出项。
在这里插入图片描述

1.7、使用grep 结合 ls -l

ls -l  | grep "^d"

-l 命令查看一个目录下的文件和子目录的详悉信息时,会得到一个详细的文件和目录名列表
–d 输出的每一行的首字符表示文件类型。目录的文件类型字符是 “d” 。因此我们用 grep
过滤以 “d” 起始的行。 ^ 是行首标记
在这里插入图片描述

1.8、结合find

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

在这里插入图片描述

二、pushd和popd

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

2.1 pushd 压栈

当前目录 tail 下

pushd  /var/tmp

在这里插入图片描述

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

 pushd  /home/wanghao

在这里插入图片描述

看到栈中目录有: ~/study /var/tmp ~/study/tail
当前目录是 ~/study
dirs 查看栈中内容
在这里插入图片描述

2.2 pushd切换目录

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

pushd +2

根据dirs查看栈的内容,可知2可以切换到/tail目录下
在这里插入图片描述

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开始计数的。
当前栈中目录如下
在这里插入图片描述

popd +1  

则删除 ~/study,结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/whandgdh/article/details/85067206