- 一、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 .
包含文件开头隐藏 的 ‘.’ 因为文件以 '.'开头
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,结果如下: