1. 命令作用
显示目录中的文件信息。
2. 命令格式
1 | ls [options]... [file]... |
3. 命令解释
- ls程序可以显示目录中的任何文件信息(包括目录的信息),选项和参数和随意混合使用,后来的选项可以覆盖前面与之不兼容的选项;
- ls命令不带任何选项和参数的情况下,相当于ls . ,显示当前目录的文件信息。对于非选项的命令行参数,例如ls xxx,如果xxx是一个目录的话,那么ls程序就会显示这个目录内的文件信息(非递归,且忽略以.(点号)开头的文件),如果xxx是一个文件的话,那么只是显示它的名称。
4. 选项
4.1. -a,–all
不忽略名称以.(点)开头的文件
4.2. -A, –almost-all
不忽略名称以.(点)开头的文件,除了.(当前目录)和..(上一级目录),-a,–all可以覆盖此选项。
4.3. -B
忽略名称以’~‘结尾的,这些文件一般是文本编辑器的备份文件。–ignore=’*‘ –ignore=’.*‘具有相同的效果。
4.4. -d,–directory
当ls file的时候,如果file是一个目录,那么会显示它立里面的内容,如果想显示目录本身的内容的话,需要使用
-d选项。
4.5. –group-directories-first
会把目录全部显示在文件的前面,文件和目录单独排序。
4.6. –hide=PATTERN
隐藏文件名称匹配pattern的文件,如该–all,-a 或者 –almost-all,-A 这些选项在的时候,–hide=PATTERN就不起作用了。–ignore=PATTERN可以起到相同的作用,但是–all,-a 或者 –almost-all,-A 这些选项对–ignore=PATTERN不起作用。
例如当前目录中有一个文件README,使用ls –hide=’*‘ -A,不能隐藏掉README,但是ls –ignore=’*‘ -A 就可以。
4.7. -I pattern, –ignore=pattern
忽略文件名称和shell 模式匹配的文件。这里的pattern不是正则,是shell的glob表达式。例如:
1 | ls --ignore='.??*' --ignore='.[^.]' --ignore='#*' |
第一个选项表示忽略文件名称以.开头的,且文件名称长度至少是三个字符的文件;
第二个选项表示忽略文件名称以.开头的,且名称不是..的文件;
第三个选项表示忽略文件名称是以’#’开头的文件;
4.8. -R, –recursive
递归显示目录的内容。
4.9 -i, –inode
在文件名称的左边显示inode信息,inode在一个文件系统中是唯一的。
4.10 -h, –human-readable
以人类可读的方式显示文件的size,文件大小是以字节数显示的,这个选项可以在适当的时候,显示KB,MB等,这里的M默认是2的10次方(1048576)。这个选项与--block-size=human-reabable是等价的。
如果需要让单位以10为基数,即M是10的三次方,可以使用 --si选项。
4.11. -l, –format=long, –format=verbose
长格式显示。除了每一个文件的文件名称,还会显示文件的类型,文件模式位,硬链接的数目,属主,属组,文件size,时间戳(修改时间)。
在显示每一个目录信息的开头,显示total blocks信息,代表文件系统为这个目录下的所有文件分配的磁盘块的个数^1。磁盘块默认1024字节。
文件类型都有:
文件类型代号 | 文件类型 |
---|---|
- | 普通文件 |
b | 块设备文件,例如硬盘 |
c | 字符设备文件,例如键盘 |
C | high performance (“contiguous data”) file |
d | 目录 |
D | door (Solaris) |
l | 符号链接,软链接 |
M | off-line (“migrated”) file (Cray DMF) |
n | network special file (HP-UX) |
p | FIFO,命名管道 |
P | port (Solaris) |
s | 套接字文件 |
? | 其他文件类型 |
D | door (Solaris) |
l | 符号链接,软链接 |
M | off-line (“migrated”) file (Cray DMF) |
n | network special file (HP-UX) |
4.12. -n, –numeric-uid-gid
以长格式显示文件信息,但文件的所有者和所在组使用右对齐的数字ID显示,而不是使用左对齐的名称显示。
4.13. –author
用于长格式显示的情况下,需要与-l配合使用。显示文件的作者。在GNU/Hurd系统中,文件的作者和拥有者可以是不一样的,对其他系统来说,他们俩是一个意思。