常规实现
使用读目录opendir和readdir的系统调用获取目录信息,然后使用stat系统调用获取文件信息。
实例
# 显示当前目录下全部文件的详细信息
ls -alh
# 显示当前目录下名字第一个字符不是数字且至少有两位的文件
ls -lh [^[:digit:]]?*
-a, –all
显示包括以.开头的所有文件
-A, –almost-all
不显示.和..
-l
格式化显示文件的详细信息
-h
以可读的方式(K,M,G)显示文件大小,必须结合-h使用
-d, –directory
目录以空文件的方式列出,在匹配的时候不进行递归
-G
允许颜色显示,BSD颜色变量为LSCOLORS,Linux为LS_COLORS
-S
由大到小排序,默认是按名称排序
-t
通过最近修改时间排序
-F
在不同类型文件后面添加标识,目录后面加/,执行文件夹*等
-R
递归显示文件
-u
显示最后查看时间atime,默认显示最后修改时间mtime
-c
显示状态最后改变时间ctime,状态改变包括写入文件、更改所有者、更改权限、更改链接、Inode变化等
-T
mac下显示详细时间
–full-time
显示详细时间