ls命令实战
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ls命令实战相关的知识,希望对你有一定的参考价值。
1. ls命令的介绍
1.1 ls命令的介绍
ls是最常被使用到的Linux命令之一,来自于英文单词list的缩写,也正如list单词的英文意思,其功能是列举出指定目录下的文件名称及其属性。
学习过程中,每一个单词都值得记住,比如list,通过专业累计本专业的英语单词算一个捷径吧。
list [美 /lɪst] 列表,目录,清单。
ls命令就是list的缩写,列出当前或指定目录位置的文件。
默认不加参数的情况下,ls命令会列出当前工作目录中的文件信息,经常与cd和pwd命令搭配使用。
当然带上参数后,我们则可以做更多的事情,作为最基础、最频繁使用的命令,有必要仔细了解下其常用功能。
1.2 常用参数
常用参数我们可以使用 --help来查看
基本的语法为: ls --help
这样查出来的参数比较多,我们选择几个常见的参数来做成表格:
在 --hlep中我们看到的都是英文,但表格中是我们翻译过来的汉语,如果你喜欢英文的描述可以参看下面的几个参数 :
-d, --directory list directories themselves, not their contents
-h, --human-readable 与-l 一起,以易于阅读的格式输出文件大小
-n, --numeric-uid-gid 类似 -l,但列出UID 及GID 号
-r, --reverse 逆序排列
2. 命令参数案例
2.1 输出当前目录中的文件(默认不含隐藏文件)
默认不含隐藏文件,所以此时不需要加任何参数,直接使用ls命令。
[root@master-21 ~]# ls
anaconda-ks.cfg dir1.bak dir3 dir5 docker-ce.repo.bak
dir1 dir2 dir4 docker-ce.repo ks.cfg
隐藏文件指的是以. 开头的文件, 可以看到上述代码中并没有隐藏文件。如果我要输出隐藏文件该如何设置呢?
2.2 输出当前目录中的文件(含隐藏文件)
当要包含隐藏文件的时候需要加 -a参数。
代码如下:
[root@master-21 ~]# ls -a
. .cshrc docker-ce.repo .tcshrc
.. dir1 docker-ce.repo.bak .viminfo
anaconda-ks.cfg dir1.bak ks.cfg .vnc
.bash_history dir2 .mysql_history .xauthgDXgko
.bash_logout dir3 .pki .Xauthority
.bash_profile dir4 .rediscli_history
.bashrc dir5 .ssh
加了-a参数后,会显示所有的隐藏文件,如果你想创建隐藏文件,也需要使用. 开头,比如touch .a.txt 这样就创建了一个a.txt的隐藏文件
2.3 输出文件的长格式,包含属性详情信息
长格式我们需要使用 -l参数,这里l是L的小写字母,避免写错。
代码如下:
[root@master-21 ~]# ls -l
总用量 16
-rw-------. 1 root root 1352 8月 16 23:00 anaconda-ks.cfg
drwxr-xr-x 2 root root 6 11月 30 19:17 dir1
drwxr-xr-x 2 root root 6 12月 5 23:03 dir1.bak
drwx------ 2 root root 6 11月 30 19:17 dir2
与不加-l相比,多了文件类型,权限以及所有者,所有组等等信息。
2.4 输出指定目录中的文件列表
输出指定目录中的文件列表,需要跟上指定的目录目录。 当我们想要判断一个目录中有没有文件,或者不想登陆目录直接查看目录中的文件内容,就可以使用这种方式。
[root@master-21 ~]# ls /var/lib
alternatives games misc os-prober rpm-state unbound
authconfig gssproxy mysql Pegasus rsyslog virt-who
当然这里也可以显示格式,直接加上 -l即可。
2. 5.输出文件名称及inode属性块号码:
输出inode号码,需要使用-i参数, 我们常说,系统识别的不是文件名而是inode, 文件名存在于目录中,而inode是在文件中的stat信息里。
[root@master-21 ~]# ls -i /var/lib
16786291 alternatives 17052462 machines 55578998 rpcbind
50727424 authconfig 19208 misc 16777291 rpm
如果文件被删除,也通常是释放了inode号,而非真正把数据删除了。
2. 6. 搭配通配符一起使用,输出指定目录中所有以sd开头的文件名称
通配符的使用方法比较多,* 表示匹配所有,有时候我们忘记了sd文件后面的内容,或者想查找sd开头的文件,就可以使用通配符。
[root@master-21 ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1
可以看到,当我们使用了*之后,所有的sd开头的文件就全部出来了
2. 7. 依据文件大小进行排序,输出指定目录中文件属性详情信息
S 参数,是从大到小排序, 我们想对文件进行排序,而且是安装从大到小的循序排列,就可以使用S。
[root@master-21 ~]# ls -Sl /var/lib
总用量 8
drwxr-x--x 7 mysql mysql 4096 12月 5 10:20 mysql
drwxr-xr-x. 2 root root 4096 12月 5 10:21 rpm
drwx------. 2 root root 234 12月 5 10:20 NetworkManager
......省略部分输出......
如果反过来,我们要安装从小到大排序改怎么做呢?
这里有个-r参数: -r, --reverse 逆序排列
所以就可以改成:
[root@mufenggrow ~]# ls -Slr
如果这样的排序文件大小看着不舒服,也可以加一个h参数,让文件大小的显示更人性化一点:
3. ls -l 参数输出的信息解读
3.1 图示
我们可以看到,ls -l 会输出一个长格式,这个长格式中,包含了文件字符类型,权限,所有者,所有组,创建时间,文件名等,如下图:
-rw-------. 1 root root 1680 9月 19 12:16 anaconda-ks.cfg
-rw-r--r--. 1 root root 1728 9月 19 12:55 initial-setup-ks.cfg
3.2 文件类型举例
第一个字符文件类型中:
d:目录文件 directory
l: 链接文件
b:块设备文件
c:字符设备文件
p:管道文件
-: 表示普通文件
3.3 通过颜色来判断文件类型
inux系统中不同的颜色代表了不同的文件类型,但我们只能做为参考,不能作为判断的依据
颜色代表的内容如下:
如果想要判断一个文件的类型,通常我们会用ls -l 来判断,除此之外,我们也可以用file来判断 文件类型:
file后面直接跟文件名即可:
[root@mufenggrow ~]# touch a.txt
[root@mufenggrow ~]# file a.txt
a.txt: empty
关于file命令更详细的介绍,我们将在后面的文章中展开。 本文主要介绍ls命令。
总结
ls命令的使用比较频繁,各种参数比较多,还是得下功夫记熟, 尤其是排序参数容易混淆。
以上是关于ls命令实战的主要内容,如果未能解决你的问题,请参考以下文章