冷月nuanyang 发表于 2022-8-12 20:04:48

3.5 文件和目录列表

本帖最后由 冷月nuanyang 于 2022-8-15 23:02 编辑

3.5 文件和目录列表
        要想知道系统中有哪些文件,可以使用命令(ls)。
3.5.1 基本列表功能
        ls命令最基本的形式会显示当前目录下的文件和目录
       
        注意,ls命令输出的列表是按字母排序的(按列排序而不是按行排序)。如果用户用的是支持彩色的终端仿真器。ls命令还可以用不同的颜色来区分不同类型的文件。LS_COLORS环境变量控制着这个功能。不同的Linux发行版根据各自终端仿真器的能力设置这个环境变量。
        如果没有安装彩色终端仿真器,可用带-F参数的ls命令区分文件和目录。如
       
        -F参数在目录命后加了正斜线(/),以方便用户在输出中分辨它们。类似地,它会在可执行文件的后面加个星号,以方便用户找出可在系统上运行的文件。
        基本的ls命令在某种意义上有点容易让人误解。它显示了当前目录下的文件和目录,但并没有将全部显示出来。Linux经常采用隐藏文件来保存配置信息。在Linux上,隐藏文件通常是文件名以点号开始的文件。这些文件并没有默认的ls命令输出中显示出来,因此称其为隐藏文件。
        要把隐藏文件和普通文件及目录一起显示出来,就得用到-a参数,如
       
        所有以点号开头的隐藏文件现在都显示出来了。
        -R参数是ls命令可用的另一个参数,叫做递归选项。它列出了当前目录下包含的子目录中的文件,如果目录很多,这个输出就会很长。如:
       
        注意,首先-R参数显示了当前用户目录下的内容,也就是只之前例子中root目录下的那些文件,另外,它还显示除了root目录下所有子目录及其内容。
3.5.2 显示长列表
        在基本的输出列表中,ls命令并未输出太多每个文件的相关信息。要显示附加信息,另一个常用的参数是-l。-l参数会产生长列表格式的输出,包含了目录中每个文件的更多相关信息
       
        这种长列表格式的输出在每一行中列出了单个文件或目录。除了文件名,输出中还有其他有用信息。输出的第一行显示了在目录中包含的总块数。再次之后,每一行都包含了关于文件(或目录)的如下信息:
        ①文件类型,如目录(d)、文件(-)
        ②文件的权限
        ③文件的硬链接总数
        ④文件属主的用户名
        ⑤文件属组的组名
        ⑥文件的大小(以字节为单位)
        ⑦文件的上次修改时间
        ⑧文件名或目录名
        -l参数是一个强大的工具。有了它,几乎可用看到系统上任何文件或目录的大部分信息。
        在进行文件管理时,ls命令的很多参数都能派上用场。如果在shell提示符中输入man ls,就能看到可用来修改ls命令输出的参数有好几页
3.5.3 过滤输出列表
        由前面的例子可知,默认情况下,ls命令输出目录下的所有非隐藏文件。有时这个输出会显得过多,当你只需要查看单个少数文件信息时更是如此
        幸而ls命令还支持在命令行中定义过滤器。它会用过滤器来决定应该在输出中显示那些文件或目录
        这个过滤器就是一个进行简单文本匹配的字符串。可以在要用的命令行参数之后添加这个过滤器:
       
        当用户指定特定文件的名称作为过滤器时,ls命令只会显示该文件的信息。有时你可能不知道要找的那个文件的确切名称。ls命令能够识别标准通配符,并在过滤器中用它们进行模式匹配
        ①问号(?)代表一个字符
        ②星号(*)代表零个或多个字符
        问号可用于过滤器字符串中替代任意位置的单个字符如:
       
        在过滤器中使用星号和问号被称为文件扩展匹配(file globbing),指的时使用通配符进行模式匹配的过程。通配符正式的名称叫做元字符通配符(metacharacter wildcards)。除了星号和问号之外,还有更多的元字符通配符可用于文件扩展匹配。可以使用中括号。
       
        在这个例子中,使用了中括号已经在特定位置上可能出现的两种字符:s或i。中括号表示一个字符位置并给处多个可能的选择。可以像上面的例子那样将待选的字符列出来,页可以指定字符范围。如
       
        另外,可以使用感叹号(!)将不需要的内容排除在外,如
       
        在进行文件搜索时,文件扩展匹配是一个功能强大的特性,它也可以用于ls以外的其他shell命令。

————————————————————————————————————————————————————————————


3.6 处理文件
https://www.chncert.cn/forum.php?mod=viewthread&tid=734&fromuid=1016784

wolf0000 发表于 2022-8-13 02:14:18

ls -l果然强大,可以做到类似find命令的过滤文件的效果,试想一下ls可以不可配合什么命令或者shell批处理达到findgrep等类似的效果
页: [1]
查看完整版本: 3.5 文件和目录列表