title: Linux ls命令 author: Gamehu tags: - ls categories: - linux date: 2020-06-02 17:44:00 --- ### 背景 前面的文章已经说过很多了,因为经常会到服务器上操作,所以记录几个常用的Linux命令。 ### ls命令 ls命令应该说是我接触的linux的第一批命令之一,属于没事就敲个ls装逼的程度,但是用下来发现也是一个宝藏命令,实用性很强。 ##### `ls` 直接输入ls,不带任何其它选项,该`ls`命令提供有关由命令行上给定路径指向的每个文件对象的信息: - 只显示路径指向的文件对象的名称; - 如果该路径指向目录(或指向目录的符号链接),则该`ls`命令还会列出该目录的内容; - 如果显示多个条目,则将按文件名的字母顺序对其进行排序。 最后,当在命令行上未给出路径时,这些`ls`命令将采用`./`–即当前目录。 {% asset_img 1.png ls %} ##### `ls -l: 长格式显示` 除文件名称外,亦将日期和时间、权限、拥有者、文件大小等资讯详细列出,我们经常使用的`ll`其实就是它的别名。 {% asset_img 2.png ls -l %} ##### `ls -a: 显示所有文件` 使用该`-a`选项时,在显示目录内容时`ls`包括[隐藏文件](https://en.wikipedia.org/wiki/Hidden_file_and_hidden_directory)。但是什么是隐藏文件? 隐藏文件:名称以点开头的文件被视为隐藏文件。此外,每个目录还包含两个特殊的,通常为隐藏的条目:`.`和`..` 在每个目录中: - 该`.`条目指向目录本身。这种自我指称似乎很奇怪。但这有时很有用,有点像将自己的电话号码存储到智能手机库中。 - 该`..`条目指向父目录。由于类Unix系统上的文件层次结构严格地组织为一[棵树](https://en.wikipedia.org/wiki/Tree_(data_structure)),因此每个目录只有一个父目录。 {% asset_img 3.png %} ##### `ls -s: 显示文件分配的大小` 这里大小的单位是**块**,在linux中一块可以看作是1024字节,该大小指的不是逻辑大小而是实际大小。如下所示,a、b都是2097152,但是通过块的方式查看b只有1028,因为b目录下由 [sparse files](https://en.wikipedia.org/wiki/Sparse_file)。 ``` sh:~/ls$ ls -ls a b 2052 -rw-r--r-- 1 sylvain sylvain 2097152 Sep 19 22:18 a 1028 -rw-r--r-- 1 sylvain sylvain 2097152 Sep 19 22:18 b ``` ##### `ls -h: 可读性强的方式显示文件大小` 使用-h选项,ls将使用单位后缀显示文件大小,以使其更加用户友好。如图直接使用-h是没用的,结合l和s使用。 {% asset_img 4.png %} ##### `ls -d */: 只显示目录(文件夹)` {% asset_img 5.png %} ##### `ls -i: 显示文件的索引号` 有点我们说的引用地址的意思,该选项在查看文件的硬、软链接时比较有用。比如查看某几个文件是否引用同一基础文件系统对象。 比如下图,切换到根目录,然后`ls -ia`你会发现`.`和`..` 的索引号都是2,证明指向的是同一个目录,这刚好可以解释根目录的父目录就是根目录自身。 {% asset_img 6.png %} ##### `ls ../` 查看父目录文件。 ##### `ls ~` 查看主目录的文件。 ##### 排序 `ls -t `:按修改时间倒序,最近修改的在前。 `ls -S`: 按文件大小正序,最小在前。 `ls -r`:反转排序。比如`ls -rS`,则会变成最大的在前。 `ls -R`:递归列出子目录,跟`find .`效果类似。 **时间完整显示** `ls --full-time`:显示完整日期及时间。 ### OK 结束了,以上列举的80%都是我日常经常用的,希望对大家有帮助。 **感谢** {% blockquote ls Command in Linux: 17 Useful Examples Explained https://linuxhandbook.com/ls-command/#_a_sample_file_hierarchy Sylvain Leroux%} {% endblockquote %}