Mac 命令学习-每日一贴之ls
基本用法
ls [-ABCFGHLOPRSTUW@abcdefghiklmnopqrstuwx1] [file ...]
ls 后面可以跟0~N个参数,最后可以跟0~N个文件名。
文件名支持通配符,可以进行简单的文件名搜索。如果匹配到目录的话,会将目录中的子项目一同打印出来。
相关概念
通配符规则
* (星号通配符)
匹配0~N个任意字符。
?(问号通配符)
匹配1个任意unicode字符。
[char] (方括号通配符)
匹配1个方括号内任意的一个字符。
括号中的字母可以使用POSIX 字符集(POSIX Character Classes),包含以下几种。我只列出了认为比较常用的,详见http://man7.org/linux/man-pages/man7/glob.7.html
表达式 | 解释 |
---|---|
[a-z] |
小写a到z |
[A-Z] |
大写a到z |
[0-9] |
数字0到9 |
[:alnum:] |
Alphanumeric字符,表示拉丁文和阿拉伯数字[4] |
[:alpha:] |
Alphabetic characters,拉丁文 |
[:digit:] |
数字 |
[:upper:] |
大写的拉丁文 |
[:lower:] |
小写的拉丁文 |
[:blank:] |
ASCII 空格或制表符 |
[:space:] |
ASCII 空格 |
使用方法
[[:alpha:]]*
,匹配以字母开头的字符串。
[!char](方括号通配符)
通过在第一位加!
表示匹配不包含方括号之内的字符
常用功能
-A
- 列出目录下除了.
和..
以外的所有文件。-a
- 列出目录下所有文件,包括目录以.
开头的文件。-d
- 仅打印出目录名字,不去打印内部的文件。-l
- 打印长格式,包含-G
- 彩色输出。-p
- 如果为目录,在显示名称后面打印一个’/‘-r
- 根据目前输出默认的排序逆序。-O
- 打印出File Flag
长格式
I II III IV V VI VII
drwxr-xr-x 9 zhengyi group 306 May 24 08:24 .
drwxr-xr-x 42 zhengyi group 1428 May 23 23:20 ..
-rw-r--r--@ 1 zhengyi group 6148 May 24 08:24 .DS_Store
-rwxr-xr-x 1 zhengyi group 2723 May 24 08:20 build.sh
-rw-r--r-- 1 zhengyi group 883 May 24 08:19 db.json
-rw-r--r-- 1 zhengyi group 2281 May 24 08:20 gen.py
drwxr-xr-x 2 zhengyi group 68 May 24 08:18 lib
drwxr-xr-x 7 zhengyi group 238 May 24 08:25 src
drwxr-xr-x 4 zhengyi group 136 May 24 08:18 tests
I:文件权限信息,详见下图。如果有@
符号,表示这个文件有一些拓展属性,可以通过添加-@
参数查阅,也可以使用xattr工具来查看具体信息[1]。
II:链接计数(link count),包括hard links,symbolic links,还有目录引用。当前目录的.
会引用自己,同时它的所有的子目录都会持有一个..
指向当前目录。这就导致了目录的链接计数往往比较大。
III:owner name
IV:owner group
V:文件大小,单位为字节
VI:最后修改日期
VII:文件名
Access right in the first column
[2]
具体案例
设置默认的别名(alias)
个人喜好将输出搞的彩色一点,比较明显能看出文件的类别
alias ls='ls -G'
列出文件夹下所有的子文件夹
ls -d */
按照最后修改时间排序
ls -l -t -T (新修改的在前)
ls -l -t -T -r(老修改的在前)
根据文件大小排序
ls -l -S (从大到小)
参考资料
- “ls” on Mac and extended file attributes
- permission gif
- Wildcard - 1
- Wildcard - 2
- Alphanumeric - Wikipedia
阅读更多
Mac/Linux 命令学习