zl程序教程

您现在的位置是:首页 >  系统

当前栏目

linux ls 命令超级详解

Linux命令 详解 超级 ls
2023-09-11 14:17:18 时间

命令功能

查看目标文件(包括目录)中所有文件信息,包括权限信息等。

命令格式

ls [选项] [目标文件]

选项参数

  • -a , --all:查看目录下的所有文件,包括以 . 开头的隐含文件。
  • -A, --almost-all:-a,但不列出...的目录。
  • --author:-l一起使用,可以查看文件的作者。
  • -b, --escape: 打印C格式的不可以显示字符。
  • -B, --ingore-backups: 忽略带有备份文件,比如打开word文件这种会产生一个临时文件
  • --block-size=SIZE: 打印出以SIZE为单位的文件大小,比如--block-size=M表示以M为单位打印文件大小。
  • -c:
    • -lt一起使用,则按ctime进行排序,并显示ctime
    • -l 一起使用,则按文件名称排序,并显示ctime
  • -C: 表示按列显示文件,也就说文件顺序,先从向下再向右,正常顺序是从左往右按行来显示,而-C是从上到下按列来显示。
  • --color[=WHEN]: 是否使用色彩分辨文件。WHEN 可以是neverautoalways其中之一,默认是always
  • -d, --directory: 以目录形式显示目标文件,而不显示它的内容,比如它下面的文件。
  • -D, --dired: 生成适合Emacsdired模式使用的结果。
  • -f: 不对文件排序,对-aU生效,对-ls --color无效。
  • -F,--classify: 对文件显示进行标记,标记格式:
    • /标记目录文件
    • *标记可执行文件
    • @标记链接文件
    • =标记网络socket文件
    • |标记FIFO的队列管道
    • %标记一类占位符形态的特殊文件,whiteout文件
  • --file-type:-F但是它不标记可执行文件。
  • --full-time: 相当于-l --time-style=full-iso可以修改显示时间格式。
  • -g:-l,但是不显示文件所有者。
  • -G, --no-group: 不显示用户组信息。
  • -h, --human-readable: 以容易理解的格式显示文件大小,比如1K1M1G等。
  • --si:-h,但是文件大小进制不是1024,而是1000
  • -H, --dereference-command-line : 显示命令列中的符号链接指示的真正目的地,一般是链接,一般同-l一起使用。
  • --dereference-command-line-symlink-to-dir:-H,但是它是指向目录的。
  • --hide=PATTERN: 隐藏符合PATTERN正则表达式的文件。
  • --indicator-style=WORD: 指定在每个项目名称后加上指示符号,none (默认),slash-p操作), file-type--file-type操作),classify-F操作)。
  • -i, --inode: 显示文件的索引号,也就是node号。
  • -I, --ignore=PATTERN: 忽略符合PATTERN的文件。
  • -k, --kibibytes=1K:k字节形式显示文件大小。
  • -l: 将文件的详细信息显示出来,像权限,所有者,文件大小,时间等。
  • -L, --dereference: 当显示符号链接的信息时,会显示符号链接所指示的对象而并非符号链接本身的信息。
  • -m: 所有文件以逗号分隔,并把每行填满。
  • -n, --numeric-uid-gid:-l,但是会把用户名和用户组名显示为ID
  • -N, --literal: 显示文件的原生名称。
  • -o:-l,但是不显示用户组信息。
  • -p, --indicator-style=slash: 目录显示会在后面多一个/
  • -q, --hide-control-chars: 使用?来代替不可显示字符。
  • --show-control-chars: 对不可显示字符按照原来方式显示。
  • -Q, --quote-name: 将文件名用引号引起来。
  • --quoting-style=WORD: 使用指定的类型来引用文件名,可以选有的literallocaleshellshell-alwayscescapeclocale等。
  • -r, --reverse: 翻转文件,一般在排序时使用,逆序显示。
  • -R, --recursive: 递归的方式打印文件,也就是说会递归的把目录以及目录的子目录等全部显示出来。
  • -s, --size: 以块的数量显示文件大小。
  • -S: 的按照文件大小排序。
  • --sort=WORD: 按照指定属性进行排序,可以选有的:none (-U)(默认)、 size (-S)(文件大小)、 time (-t)(最后一次修改时间)、 version (-v)(版本)、 extension (-X)(扩展名)等。
  • --time=WORD: 可以指定不同的时间类型。
  • --time-style=STYLE: 显示的时间格式的调整。
  • -t: 按照最后一次修改时间进行排序。
  • -T, --tabsize=COLS: 修改tab的大小。
  • -u:
    • -lt一起使用,则显示访问时间而且依访问时间排序
    • -l一起使用,则显示访问时间但根据名称排序
    • 单独使用,则根据访问时间排序
  • -U: 不进行排序,依文件系统原有的次序列出文件。
  • -v: 按照版本进行排序。
  • -w, --width=COLS: 使用屏幕宽度而不是使用当前值显示。
  • -x: 按行方式显示文件而不是按照列方式。
  • -X: 按照扩展名进行排序。
  • -1: 一行一个文件名。
  • --help: 显示帮助。
  • --version: 显示版本信息。

命令显示字段含义

image

从上面可以看到主要有7列:

  • 第一列共10位
    • 第1位表示文档类型,d表示目录,-表示文件,l表示链接文件,d表示可随机存取的设备,如U盘等,c表示一次性读取设备,如鼠标、键盘等。
    • 后9位,依次对应三种身份所拥有的权限,身份顺序为:ownergroupothers,权限顺序为:readablewritableexcutable。如:-r-xr-x---的含义为当前文档是一个文件,拥有者可读、可执行,同一个群组下的用户,可读、可写,其他人没有任何权限。
  • 第二列表示链接数,表示有多少个文件链接到inode号码。
  • 第三列表示文件拥有者。
  • 第四列表示文件所属群组。
  • 第五列表示文档容量大小,单位字节。
  • 第六列表示文档最后修改时间,注意不是文档的创建时间。比如第一个是4月2日17:22。
  • 第七列表示文档名称。以点.开头的是隐藏文档。

常用命令

  • 列出/opt目录下的所有文件和目录详细信息,包括隐藏文件:

    ls -la /opt
    
  • 列出/opt目录下所有文件和目录的详细信息:

    ls -lR /opt
    
  • 只列出/opt目录下的所有目录详细信息:

    ls -l /opt | grep "^d"
    
  • 只列出/opt目录下的所有目录:

    ls -F /opt | grep /$
    
  • 列出/opt目录下的目录后添加/,可执行文件后添加*,链接文件后添加@等:

    ls -F /opt
    
  • 指定文件时间输出格式:

     ls -tl --time-style=full-iso
     ls -ctl --time-style=long-iso
    
  • 只列出/opt目录下的所有文件的绝对路径:

    ls | sed "s:^:`pwd`/:" 
    find /opt | xargs ls -d