基本功能列表

ls最基本的形式会显示当前目录下的文件和目录

$ ls

ios 遍历指定文件夹 ls 遍历文件夹_shell

注意,ls命令输出的列表是按字母排序(按列)


-F参数轻松区分文件和目录

$ ls -F

ios 遍历指定文件夹 ls 遍历文件夹_linux_02

目录(文件夹)后面添加了正斜线(/),可执行文件后面加了*,方便用户区分


-a参数将隐藏文件和普通文件和目录一起显示出来

$ ls -a

ios 遍历指定文件夹 ls 遍历文件夹_递归_03

以点号开头的都是隐藏文件,以.bash开头的文件是bash shell环境所使用的隐藏围巾啊


-R参数叫做递归选项,列出了当前目录下包含的子目录中的文,如果目录很多,这个输出会很长,如果有更多的子目录,-R参数会继续进行遍历

$ ls -R
⭐️tip:参数不一定要分开来,例如:ls -F -R,也可以ls -FR这么来写⭐️

显示长列表

-l参数可以产生长列表格式的输出.包含了目录中每个文件的更多相关信息

$ ls -l

ios 遍历指定文件夹 ls 遍历文件夹_mac_04

输出的第一行显示了在目录中包含的总块数,在此之后,每一行都包含了关于文件(或文件夹)的描述信息

  • 文件类型,比如目录(d),文件(-),字符型文件(c),块设备(b)
  • 文件的权限,比如读(r),写(w)
  • 文件的硬连接总数
  • 文件属主的用户名
  • 文件属主的组名
  • 文件的大小(单位是字节)
  • 文件上次修给的时间
  • 文件名或目录名

过滤输出列表

ls命令还支持命令中定义过滤器,用过滤器决定应该在输出中显示哪些文件和目录,可以进行简单文本的匹配,在命令参数后面添加这个过滤

$ ls -l test.txt

ios 遍历指定文件夹 ls 遍历文件夹_shell_05

当用户指定这个过滤器后,就是显示该文件的信息,当然也可以识别标准通配符进行模糊匹配

  • 问号(?)代表一个字符
  • 星号(*)代表零个或多个字符
$ ls -l te*
$ ls -l te*t
$ ls -l ?est

ios 遍历指定文件夹 ls 遍历文件夹_mac_06

在过滤器中使用星号或问号被称为文件扩展匹配(file globbing),指的是使用通配符进行模糊匹配的过程,通配符的正式名称叫做元字符通配符(metacharacter wildcards)

除了星号的问号以外,还有更多的元字符通配符用于文件扩展匹配,可以使用中括号,使用中括弧并且在特定的位置上查找可能出现的字符(e或s),例如:

ls -l t[es]t.txt,可以找出tet.txt和tst.txt

同时也可以指定范围

ls -l t[a - I]st.txt

还可以使用感叹号,将不需要的内容排除

ls -l t[!b]st.txt.

创建文件

touch在当前目录下创建空文件

//创建一个名为test的文件
$ touch test

如果当前目录下没有该名字的文件,touch会创建一个文件,如果当前目录下有该文件,执行命令后会改变该文件的修改时间.但是文件内容没有被改变.

ios 遍历指定文件夹 ls 遍历文件夹_ios 遍历指定文件夹_07