ls
2022-09-20 10:10:29 # 操作系统 # Linux # shell # 常用命令 # 目录操作

1. 命令作用

显示目录中的文件信息。

2. 命令格式

1
ls [options]... [file]...

3. 命令解释

  1. ls程序可以显示目录中的任何文件信息(包括目录的信息),选项和参数和随意混合使用,后来的选项可以覆盖前面与之不兼容的选项;
  2. 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系统中,文件的作者和拥有者可以是不一样的,对其他系统来说,他们俩是一个意思。