如何让ls按目录和文件 分开进行列表?
linux的思想是: 有很多 "小工具", 但是功能并不弱的 小工具, 组合起来完成一些复杂的工作, 通过
这些工具的组合可以完成各种各样的, 不同的任务.
如: ls, sort, head, tail, cut, sed, awk等等
=---------------------------- ==
linux的命令格式通常是: command [-options] 参数; 或者 command1 [-options] command2 参数...
ls在较新的 内核中, 有新的选项 --group-directories-first,
就是先列出目录, 后列出文件
-g: 表示的是group, 跟-l类似, 只是不显示 file owner. 只only print group
选项:
-a
-t: time, 即按时间进行排列: newest first , 就是按时间进行 "降序" 排列!
--------------------------- ==
sort 表示排序,
-s: 表示stablize, 按最开始的原有的顺序进行排列;
-k: 表示key, 即按哪一列, (哪一个字段, 在ls -l时)进行排列
sort -s -k 1,1 (其中1,1, 表示 第一列的第一个字符进行排列).
因此, 要想ls 按目录和文件进行 分别列出, 可以使用
- 新的选项--group-directories-first
- 使用sort进行排列: ls -lat | sort -s -k 1,1
ls的 选项还有很多特殊的功能, 如:
-A: 同-a, 但是不显示 当前目录和父目录 . ..
-r和-R:
-r: 表示 按时间的 相反顺序进行排列, 默认的-t是newest first, -r 则是oldest first
-R: 是递归的意思, recursive, 可以递归的列出每一个子目录下的文件即目录...
-R的效果, 也可以用tree来实现, 当你要 查看整个目录的文件结构的 时候, 可以使用这个tree命令
-F: format? , 显示每个文件的格式: 目录后用/, 可执行文件后用*, 链接文件后用@....