• ls命令设计思想


    1 作用

    list segment:列出文件块

    list directory contents:列举目录内容

    2 用法

    ls [-ABCFGHLOPRSTUW@abcdefghiklmnopqrstuwx1] [file ...]

    3 参数

    -@

    -A  列举(.和..)外的文件和目录。

    -a  列举所有的文件和目录。

    -B  强制打印非打印字符(换行、制表、空格)。

    -b  使用c转义码打印非打印字符。

    -C  多列输出。默认参数。

    -c  显示使用时间(而不是创建时间)。与-t和-l参数同时使用时生效。

    -d  目录会被视为普通的文件(不会递归搜索目录)。显示目录的信息,而不是目录下的文件。

    -e  

    -F  在相应的文件后添加字符以示区别。目录/,可执行文件*,软链@,socket=,whiteout%,FIFO|。

    -f  不排序。该参数会使-a生效。

    -G  彩色输出。  

    -g  兼容POSIX。

    -H  使用软链的真实地址。不与-F,-d,-l同用。

    -h  更适合人类阅读的方式。(主要是文件大小)。

    -i  打印文件序列号。(inode number)。

    -k  块大小的单位是k

    -L  

    -l  长格式输出。显示文件类型、权限、硬链接的数目、文件拥有者、文件所在的、大小、日期和文件名。

    -m  列举文件名,用逗号连接。

    -n  显示用户和组的编号。

    -O

    -o  长格式输出(-l),隐藏组。

    -P  符号链接视为普通文件,显示符号链接信息,而不是它指向的文件或目录。使-H和-L参数失效。

    -p  目录后添加/。

    -q  强制用?代替non-graphic字符。默认参数。

    -l  递归显示子目录。

    -r  输出反向排序。

    -S  按文件大小排序。

    -s  列出文件的块大小。

    -T  

    -t  按修改时间排序。

    -U  与-t或-l一起使用时,按文件创建时间排序。

    -u  与-t或-l一起使用时,按最后访问时间排序。

    -v  non-graphic字符。非终端输出时的默认参数。

    -W  显示whiteouts。

    -w  non-printable字符。非终端输出时的默认参数。

    -x

    4 设计思想

    设计ls命令时,需要考虑如下问题:

    4.1 长格式

    -l参数时,需要显示以下信息:

    1 文件属性
    2 子文件数
    3 用户
    4 5 文件大小
    6 7 8 时间
    9 文件名

    4.2 文件属性

    4.2.1 文件类型

    1            b     Block special file.
    2            c     Character special file.
    3            d     Directory.
    4            l     Symbolic link.
    5            s     Socket link.
    6            p     FIFO.
    7            -     Regular file.

    4.2.2 文件权限

    1 r    readable
    2 w    writable
    3 -    not readable or not writable
    4 S    有用户(组)的读(写)权限,无文件(目录)执行(搜索)权限,且set-user-ID(set-group-ID)已设置。
    5 s    有用户(组)的读(写)权限,有文件(目录)执行(搜索)权限,且set-user-ID(set-group-ID)已设置。
    6 x    文件可执行或目录可搜索。
    7 -     无权限。
    8 T     粘滞位(sticky),无文件(目录)执行(搜索)权限
    9 t     粘滞位(sticky),有文件(目录)执行(搜索)权限

    4.3 输出颜色

    4.4 是否输出到终端

    4.5 输出排序

    4.6 non-printable和non-graphic

    4.7 各参数的优先级及turn on(off)策略

  • 相关阅读:
    MongoDB数据库性能分析(转)
    C++中拷贝构造函数
    C++中的继承和组合区别使用
    几种调用约定
    动态规划(基础篇)
    C++中的三种继承public,protected,private
    STl中的排序算法
    STL中的常用算法
    C++初始化函数列表
    设计模式之装饰模式(Decorator)
  • 原文地址:https://www.cnblogs.com/yanyichao/p/4115159.html
Copyright © 2020-2023  润新知