list directory contents = ls
ls [选项] [文件名...]
[-1abcdfgiklmnopqrstuxABCDFGLNQRSUX] [-w cols] [-T cols] [-I pattern] [--full-time]
[--format={long,verbose,commas,across,vertical,single-col‐umn}]
[--sort={none,time,size,extension}] [--time={atime,access,use,ctime,status}]
[--color[={none,auto,always}]] [--help] [--version] [--]
!!!!輸出方式
ls
# 逆序排列目录内容。
-r # 逆序排列。
-c # 使用“状态改变时间”代替“文件修改时间”为依据来排序(使用“-t”选项时)或列出(使用“-l”选项时)。
-t # 按时间信息排序。
-t, --sort=time
# 按文件最近修改时间( i 节点中的 mtime )而不是按文件名字典序排序,新文件 靠前。
-u # 使用最近访问时间代替最近修改时间为依据来排序(使用“-t”选项时)或列出(使用“-l”选项时)。
-u, --time=atime, --time=access, --time=use
# 类似选项“ -t ”,但是用文件最近访问时间( i 节点中的 atime )取代文件修
# 改时间。如果使用长格式列出,打印的时间是最近访问时间。
-S, --sort=size
# 按文件大小而不是字典序排序目录内容,大文件靠前。
-X, --sort=extension
# 按文件扩展名(由最后的 "." 之后的字符组成)的字典序排序。没有扩展名的先列 出。
-m, --format=commas
# 水平列出文件,每行尽可能多,相互用逗号和一个空格分隔。
//列是直的
-1 # 单列输出。
-x, --format=across, --format=horizontal
# 多列输出,横向排序。
-C # 多列输出,纵向排序。
-C, --format=vertical
# 多列输出,纵向排序。当标准输出是终端时这是缺省项。使用命令名 dir 和 d 时, 则总是缺省的。
-f # 不排序目录内容;按它们在磁盘上存储的顺序列出。同时启 动“ -a ”选项,如果在“ -f ”之前存在“ -l”、 “ - -color ”或“ -s ”,则禁止它们。
-U, --sort=none
# 不排序目录内容;按它们在磁盘上存储的顺序列出。(选项“-U”和“-f”的不
# 同是前者不启动或禁止相关的选项。)这在列很大的目录时特别有用,因为不加排序
# 能显著地加快速度。
-R # 递归列出遇到的子目录。
-R, --recursive
# 递归列出全部目录的内容。
//缺省值是在沒有指定值的情況下,程序自動採用的預設值。
-w, --width cols
# 假定屏幕宽度是 cols ( cols 以实际数字取代)列。如未用此选项,缺省值是这
# 样获得的:如可能先尝试取自终端驱动,否则尝试取自环境变量 COLUMNS (如果设
# 置了的话),都不行则取 80 。
//n個文件在一組,每組間用Tab隔開
-T, --tabsize cols
# 假定每个制表符宽度是 cols 。缺省为 8。为求效率, ls 可能在输出中使用制表符。 若 cols 为
0,则不使用制表符。
!!!!內容更動
//添加新內容
//以下三個都是等價的
-l, --format=long, --format=verbose
# 输出的信息从左到右依次包括文件名、文件类型、权限、硬链接数、所有者名、组名、大小(byte)
# 、及时间信息(如未指明是其它时间即指修改时间)。对于6个月以上的文件或超出未来
# 1小时的文件,时间信息中的时分将被年代取代。
# 每个目录列出前,有一行“总块数”显示目录下全部文件所占的磁盘空间。块默认是1024字节;
# 如果设置了 POSIXLY_CORRECT 的环境变量,除非用“-k”选项,则默认块大小是 512 字节。
# 每一个硬链接都计入总块数(因此可能重复计数),这无 疑是个缺点。
# 列出的权限类似于以符号表示(文件)模式的规范。但是 ls
# 在每套权限的第三个字符中结合了多位( multiple bits ) 的信息,如下: s 如果设置了 setuid
# 位或 setgid 位,而且也设置了相应的可执行位。 S 如果设置了 setuid 位或 setgid
# 位,但是没有设置相应的可执行位。 t 如果设置了 sticky 位,而且也设置了相应的可执行位。 T
# 如果设置了 sticky 位,但是没有设置相应的可执行位。 x
# 如果仅仅设置了可执行位而非以上四种情况。 - 其它情况(即可执行位未设置)。
-i # 输出文件前先输出文件系列号(即 i 节点号: i-node number)。 -l 列出(以单列格式)文件模式
# (file mode),文件的链接数,所有者名,组名,文件大小(以字节为单位),时间信息,及文件名。
# 缺省时,时间信息显示最近修改时间;可以以选项“-c”和“-u”选择显示其它两种时间信息。对于设备文件,
# 原先显示文件大小的区域通常显示的是主要和次要的信号(majorand minor device numbers)。
-s, --size
# 在每个文件名左侧输出该文件的大小,以 1024 字节的块为单位。如果设置了 POSIXLY_CORRECT
# 的环境变量,除非用“ -k ”选项,块大小是 512 字节。
-L, --dereference
# 列出符号链接指向的文件的信息,而不是符号链接本身。
-n, --numeric-uid-gid
# 列出数字化的 UID 和 GID 而不是用户名和组名。
-a # 列出所有文件,包括以 "." 开头的隐含文件。
--full-time
# 列出完整的时间,而不是使用标准的缩写。格式如同 date(1) 的缺省格式;此格式
# 是不能改变的,但是你可以用 cut(1) 取出其中的日期字串并将结果送至命令 “ date -d ”。
# 输出的时间包括秒是非常有用的。( Unix 文件系统储存文件的时间信息精确到秒,
# 因此这个选项已经给出了系统所知的全部信息。)例如,当你有一个 Makefile 文件
# 不能恰当地生成文件时,这个选项会提供帮助。
-D, --dired
# 当采用长格式(“-l”选项)输出时,在主要输出后,额外打印一行: //DIRED// BEG1 END1 BEG2
# END2 ...
# BEGn 和 ENDn 是无符号整数,记录每个文件名的起始、结束位置在输出中的位置(
# 字节偏移量)。这使得 Emacs 易于找到文件名,即使文件名包含空格或换行等非正
# 常字符也无需特异的搜索。
#
# 如果目录是递归列出的(“ -R ”选项),每个子目录后列出类似一行:
# //SUBDIRED// BEG1 END1 ... 【译注:我测试了 TurboLinux4.0 和 RedHat6.1 ,发现它们都是在 “
# //DIRED// BEG1... ”之后列出“ //SUBDIRED// BEG1 ... ”,也即只有一个
# 而不是在每个子目录后都有。而且“ //SUBDIRED// BEG1 ... ”列出的是各个子目 录名的偏移。】
//限制內容
-d #只輸出目前的工作目錄
-o # 以长格式列出目录内容,但是不显示组信息。等于使用“ --format=long --no-group
# ”选项。提供此选项是为了与其它版本的 ls 兼容。
//缺省
//控制字符是ASCII中0到31和137號,特殊文件是字符設備文件(鍵盤、滑鼠)、塊設備文件(硬盤、USB驅動器)、管道(named pipes):允許進程間通信(IPC)的特殊文件,數據寫入一端可從另一端讀取、符號鏈接、套接字
-q, --hide-control-chars
# 用问号代替文件名中非打印的字符。这是缺省选项。
-A, --almost-all
# 显示除 "." 和 ".." 外的所有文件。
-B, --ignore-backups
# 不输出以“ ~ ”结尾的备份文件,除非已经在命令行中给出。
-G, --no-group
# 以长格式列目录时不显示组信息。
//好,*表示很多字符,?表示一個通配字符,建議使用''包起來,例如:'*a??404.txt'
-I, --ignorepattern
# 除非在命令行中给定,不要列出匹配shell文件名匹配式(pattern ,不是指一般
# 表达式)的文件。在shell中,文件名以"."起始的不与在文件名匹配式(pattern)
# 开头的通配符匹配。
//調整輸出格式
-b, --escape # 把文件名中不可输出的字符用反斜杠加字符编号(就像在 C 语言里一样)的形式列出。
-p # 在每个文件名后附上一个字符以说明该文件的类型。类似“ -F ”选项但是不 标示可执行文件。
-F # 每个目录名加 "/" 后缀,每个 FIFO 名加 "|" 后缀, 每个可运行名加“ * ”后缀。
-F, --classify, --file-type
# 在每个文件名后附上一个字符以说明该文件的类型。“ * ”表示普通的可执行文件; “ / ”表示目录;“
# @ ”表示符号链接;“ | ”表示FIFOs;“ = ”表示套接字 (sockets) ;什么也没有则表示普通文件。
//沒加也有
-N, --literal
# 不要用引号引起文件名。
-Q, --quote-name
# 用双引号引起文件名,非打印字符以 C 语言的方法表示。
--color[=when]
# 指定是否使用颜色区别文件类别。环境变量 LS_COLORS 指定使用的颜色。如何设置 这个变量见 dir‐
# colors(1) 。 when 可以被省略,或是以下几项之一:
none # 不使用颜色,这是缺省项。
# auto 仅当标准输出是终端时使用。 always 总是使用颜色。指定 --color 而且省略 when 时就等同于
# --color=always 。