Linux ls
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] 表示,把感叹号后面的内容排除