C 语言实现 Linux ls 命令
ls
常用参数:
-l
:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;-a
:显示所有档案及目录;-r
:以文件名反序排列并输出目录内容列表;-t
:用文件和目录的更改时间排序;-R
:递归处理,将指定目录下的所有文件及子目录一并处理;-r
:以文件名反序排列并输出目录内容列表;
常用参数组合:
ls -rtl
:非常实用,反向按时间排序,通常我们需要查看一个目录下面最近修改的文件,在面临很多文件的时候,可以用这条命令很快的将最近修改的文件列在前面几行ls --full-time
:非常实用,在写一些shell脚本的时候需要获取文件被更新的时间,可以用ls
的列出完整的日期与时间,获取时间细微的变化
更多请参考: http://man.linuxde.net/ls
1.2 知识点
- Linux 下的
ls
实现原理 - C 语言基础
- 文件,目录结构体(dirent 和 stat)
readdir
系统函数调用opendir
系统函数调用
1.5 代码获取
wget http://labfile.oss.aliyuncs.com/courses/439/source_code.zip
unzip source_code.zip
请尽量按照实验步骤自己写出 C 语言程序,请确认文件保存在目录:“/home/shiyanlou/source_code/” 下。
二、步骤
在 Unix/Linux 的文件系统中,所有东西的储存形式都是文件(一切皆文件的理念)。这样的话,在磁盘上的这一棵目录树上,每一个节点只有两种情况,要么是文件,要么是目录。
不像 Winodws 那样有驱动器,分区之类。这样的目录结构让 ls
的实现变得简单和容易理解。