每天一个Linux命令--ls
每天一个Linux命令–ls
在这里,我们不介绍一些花里胡哨的命令,介绍的是我们经常使用的命令。如果里面的命令不在我们的日常的使用当中,可以给我留言,我会第一时间补充进去的。
ls的语法格式
ls [OPTION]... [FILE]...
ls基本命令介绍
在我们执行ls命令的过程中,我们通常是采用ls
,然后直接敲击回车,此时代表的是罗列出当前目录下的文件、文件夹等内容,其实,我们可以指定目录,让ls
仅仅只是展示我们想要目录的内容,而不一定是当前目录的内容。假如,我们现在再"/shen/A"
目录下,如果我们想要看"/shen/B"
目录下,此时我们可以直接使用ls /shen/B
进行查看"/shen/B"
目录下的内容,也可以先用cd
命令,切换到"/shen/B"
目录下,然后执行ls
命令即可。
同样的,如果一个文件夹下有很多的文件,此时我们想要查找其中的某一个文件在当前文件夹中是否存在,此时我们可以采用ls 文件名
的方式进行查看,如果返回的是有值,则代表当前文件夹中含有这个文件,如果ls
返回的是No such file or directory
,则代表这个目录中,没有你想要的文件。
ls参数介绍
-a
-a
命令是Linux最基本的命令之一,他的主要作用是展示命令目录下,所有的文件。注意,这里所有的文件指的是
- 当前目录,以
.
表示 - 上一层目录,以
..
表示 - 当前目录下的文件、文件夹、链接等
- 当前目录下隐藏的文件、文件夹、链接等
举例:
ls -a
此时的执行结果如下:
此时,我们可以发现,在当前目录中,我们已经把上面包含的内容全部显示的出来。
-A
这个参数和-a
的区别是不显示当前目录.
和上一层目录..
。
举例:
ls -A
此时的执行结果如下:
-l
首先-l
命令是以列表的形式打印出来的,一个文件占用一行。另外,除了能够查看文件的名称之外,还可以查看其它的内容。这个命令我们会着重的介绍一下的。因为真的很关键。差不过通过这个命令,我们可以查看到这个文件的大部分基本属性了。
举例:
ls -l
此时的执行结果如下:
好,从这里开始,我们介绍下:
我们可以看见,对于每个文件而言,它都存在着9列,并且列与列之间采用空格的形式进行分割的。那么接下来,我们要讲解下每一个列的含义
第一列(drwxrwxr-x)
其中,我们以drwxrwxr-x举例,我们发现,这个值是以d
开头的。那么这个d
是什么含义呢?其实,这个d
指的是目录文件的含义。另外,我们把开头的这一个字母叫做——文件类型
。除了d
,还有其他字符:
-
普通文件d
目录文件p
管理文件l
链接文件b
块设备文件c
字符设备文件s
套接字文件
OK,接下来我们看第2~4个字符,是rwx
。其实这个指的是文件的一个权限。其中:
r
读权限w
写权限x
可执行权限-
无权限
而我们发现,在这个值中,除了第一个字符,其他的值可以每三个值分成一组。分别问:rwx
、rwx
、r-x
。那么为什么Linux要分成三个这样的值呢?是因为在Linux中大致的可以把用户分成三类:
- 自己
- 自己所在的组内的其他成员(此时不包括自己)
- 其他组的成员(此时不包括自己所在的组)
那么这个值的第2~4位指的就是自己所拥有的权限,我们可以看到,我们的权限是rwx
,那么此时我们对于这个文件存在可读、可写、可执行的权限。
而这个值的第5~7位指的是组内其他成员所拥有的权限,我们可以看到,此时的权限是rwx
,那么我们组内的其他人对于这个文件,也同样存在着可读、可写、可执行的权限。
而这个值的第8~10位指的是其他组所拥有的权限,此时我们发现,现在的权限是r-x
。也就是说,其他组的人对于这个文件只有读取和执行的权限,没有写入的权限。
第二列(2)
这一列比较特殊,我们发现,这一列仅仅只是一个数字2
,没有其他任何的解释。其实,其实,这一列的话,主要是要分为文件夹和文件来进行讲解。在讲解之前,我们先来了解下Linux系统中链接概念。
通过上面的文章,我们已经很清楚了。
- 如果当前表示的是一个文件的话,那么此时,这个值标识的是文件的硬链接数。
- 如果表示的是一个目录的话,那么此时表示的是当前目录中子文件夹的个数。
- 这个仅仅只是统计的是子文件夹的个数,不包括文件的个数
- 默认情况下是2,因为就算你一个子文件夹都没有,那么他还是会默认存在两个子文件夹的。当前目录
.
和上一层目录..
第三列(shen)
这一列很简单,标识的文件的拥有者,也就是这个文件是哪个账户创建的。
第四列(shen)
这一列很简单,标识的文件的拥有者所在的组的名字。
第五列(4096)
在这里,也是要进行区分的。如果是一个文件,标识的是文件的大小。而如果是一个文件夹的话,表示的是文件夹的大小。注意,而不是文件夹以及它下面的文件的总大小。之所以这样,是因为在Linux中,其实把文件夹当做了一个特殊的文件而已。
第六、七、八列(May 24 19:37 )
这里表示的是文件夹或者是文件的最后的修改时间。
这里要注意一下,如果当前指的是文件,那么很好说,就是修改文件的时间。
如果这里指的是文件夹,那么如果我们单纯的修改文件夹下已有文件的内容的时候,Linux是不会更新文件夹的最后修改时间的。只有当我们在文件夹添加/删除-文件夹/文件的时候,此时Linux才会去更新文件夹的最后更新时间。
第九列(bin)
这里表示的是文件或文件夹的名字。
特殊行(total 32)
我们会发现,当我们执行命令的时候,在命令结果的第一行,有个total 32
这个内容。那么这个内容到底是什么呢?
其实,这个内容是当前这个文件夹中所占用的文件块的总大小。
首先,我们通过命令getconf PAGESIZE
可以查看到我的系统中,一块的大小是4096。因此,我们认为a.txt占用了3块,而后面的每个文件夹,占用了1块。因此一共占用了9块。而每块的大小是4K。因此一共占用了36K。也就是上面展示的36。
另外,如果在当前目录中我们存在软链接(符号链接)
。那么,是不计入到计算当中的。因为符号连接的st_size
表示的是符号链接所指地址的长度。
-i
显示文件和目录的inode编号
举例:
ls -i
此时的执行结果如下:
-m
用”,”号区隔每个文件和目录的名称
举例:
ls -m
此时的执行结果如下:
-h
显示文件大小(人类可读的显示方法),在这里,我们通常配合-l
命令一起显示。
举例:
ls -lh
此时的执行结果如下:
-r
此时进行逆向排序,这个命令一般与-h
、-t
、-S
配合使用。
-t
按照时间进行排序,在这里,我们通常配合-l
命令一起显示。
举例:
ls -lt
此时的执行结果如下:
此时默认是进行了时间的倒叙排列,如果我们想要按照时间的正序排列,可以使用上面的-r
命令。
举例:
ls -ltr
此时的执行结果如下:
-S
按照文件的大小进行排序,在这里,我们通常配合-l
命令一起显示。
举例:
ls -lS
此时的执行结果如下:
此时默认是进行了文件大小的倒叙排列,如果我们想要按照文件大小的正序排列,可以使用上面的-r
命令。
举例:
ls -lSr
此时的执行结果如下:
–color
以指定颜色显示
举例:
ls --color="red"
此时的执行结果如下:
此时常用的参数有:
- always
- yes
- force
- no
- never
- none
- auto
- tty
- if-tty
-u
以文件上次被访问的时间排序
举例:
ls -lu
此时的执行结果如下:
-o
与-l
命令一致,只不过不展示组信息
举例:
ls -o
此时的执行结果如下:
-R
以递归的方式列出所有的目录和所有目录下的所有的文件
举例:
ls -lR
此时的执行结果如下:
-Q
把输出的文件名用双引号括起来
举例:
ls -Q
此时的执行结果如下:
-pf
每个文件后附上一个字符说明该文件的类型。
- “*”代表可执行的普通文件
- “/”表示目录
- “@”表示符号链接
- “|”表示FIFO
- “=”表示套接字
举例:
ls -pF
此时的执行结果如下:
转载请注明来源,欢迎指出任何有错误或不够清晰的表达。可以邮件至 gouqiangshen@126.com
文章标题:每天一个Linux命令--ls
文章字数:2.5k
本文作者:BiggerShen
发布时间:2019-09-23, 13:31:03
最后更新:2024-01-16, 03:51:15
原始链接:https://shengouqiang.cn/Linux/Linux-order-day-01/版权声明: 转载请保留原文链接及作者。