Linux ls
   2 分钟阅读

ls 命令可以知道系统中有哪些文件;

最基本的形式会显示当前目录下的文件和目录;

输出的列表是按照字母来排序的,默认不显示隐藏文件;

基本命令

如果向逆序可以ls -r

按照时间排序 ls -t,sort=time,按文件最近修改时间( i 节点中的 mtime )而不是按文件名字典序排序,新文件靠前。

ubuntu18 是彩色的终端仿真器 ,可以很容易看到哪个是文件或者文件夹;如果没有可以ls -F来分别,–classify, –file-type,在每个文件名后附上一个字符以说明该文件的类型。“ * ”表示普通的可执行文件; “ / ”表示目录;“ @ ”表示符号链接;“ | ”表示 FIFOs;“ = ”表示套接字 (sockets) ;什么也没有则表示普通文件。

linux 的隐藏文件通常是文件名以.打头的,如果想把隐藏文件和普通文件一起显示ls -a, 列出目录中所有文件,包括以“.”开头的文件;

还有一个类似tree的命令;ls -R是列出了当前目录下包含的子目录中的文件,如果文件多,输出就比较长;我比较喜欢用tree来查看;

显示长列表

ls -l

–format=long, –format=verbose

除每个文件名外,增加显示文件类型、权限、硬链接数、所 有者名、组名、大小( byte )、及时间信息(如未指明是 其它时间即指修改时间)。

对于 6 个月以上的文件或超出未来 1 小时的文件,时间信息中的时分将被年代取代。每个目录列出前,有一行“总块数”显示目录下全部文件所 占的磁盘空间。块默认是 1024 字节;如果设置了 POSIXLY_CORRECT 的环境变量,除非用“ -k ”选项,则默认块大小是 512 字 节。每一个硬链接都计入总块数(因此可能重复计数),这无 疑是个缺点。

列出的权限类似于以符号表示(文件)模式的规范。但是 ls 在每套权限的第三个字符中结合了多位( multiple bits ) 的信息,如下: s 如果设置了 setuid 位或 setgid 位,而且也设置了相应的可执行位。 S 如果设置了 setuid 位或 setgid 位,但是没有设置相应的可执行位。

t 如果设置了 sticky 位,而且也设置了相应的可执行位。 T 如果设置了 sticky 位,但是没有设置相应的可执行位。 x 如果仅仅设置了可执行位而非以上四种情况。 - 其它情况(即可执行位未设置)。

过滤输出

这个适应于只查看目标的文件信息,

ls -l Css
ls -l C?s
ls -l C*
ls -l C[a-s]*
ls -l C[!ss]*

上面这种? * [] [!] 代表通佩服;

  • ? 代表一个字符
  • *代表零个或者 N 个字符,在过滤器中使用星号和问号被成为文件扩展配符;
  • [a-z] 表示在这个范围内的文件
  • [!a] 表示,把感叹号后面的内容排除