别再稀里糊涂的使用ls命令了,带你重新认识linux查看文件信息的ls【内涵长文,非命令参数罗列】

[root_test@VM_0_15_centos ~]$ ls

axel-2.4-9.el7.x86_64.rpm test Y6kkd1d

ls 查看指定目录下的文件


ls 后跟着一个目录,即表示查看这个目录下的文件。

比如,查看根目录下的文件 ls /

查看 /etc/my.cnf.d 目录中的文件。

[root_test@VM_0_15_centos ~]$ ls /etc/my.cnf.d

hostname xzdiff xzgrep

注,ls 列出来的文件,不同的颜色,表示不同的权限!

ls查看多个目录或文件


ls后面可以通过空格跟着多个文件或目录。

如下,查看当前目录、根目录、root用户目录、my.txt文件。

[root_test@VM_0_15_centos ~]$ ls ./ / /root test/my.txt

test/my.txt

/:

bin data etc lib lost+found mnt proc run srv sys usr

boot dev home lib64 media opt root sbin swap_file tmp var

./:

axel-2.4-9.el7.x86_64.rpm test Y6kkd1d

ls: cannot open directory /root: Permission denied

ls -l 查看长列表形式的文件


ls -l-l 表示长列表格式(long listing format)。

使用该命令,可以以列表且内容更详细的形式查看文件。

$ ls -l

total 64

-rw-rw-r-- 1 root_test root_test 54908 Apr 16 2014 axel-2.4-9.el7.x86_64.rpm

drwxrwxr-x 2 root_test root_test 4096 Oct 26 21:52 test

-rw-rw-r-- 1 root_test root_test 0 Sep 3 17:40 Y6kkd1d

ls -l 长列表格式详解


通过执行命令 ls -l 显示的长列表格式的文件信息,包含着文件有关的更多内容。

我们以下面两行为例:

-rw-rw-r-- 1 root_test root_test 54908 Apr 16 2014 axel-2.4-9.el7.x86_64.rpm

drwxrwxr-x 2 root_test root_test 4096 Oct 26 21:52 test

格式详解

长列表格式的输出在每一行中列出了单个文件或目录。不仅有文件名,还包括文件的类型(属性)、大小、权限等详细信息:

  • 第一行显示了在目录中文件占用的总块数(文件系统块数 the number of file system blocks)。表示的是目录下所有文件的大小。

  • 之后的每一行显示该文件的长格式信息。

长格式信息一个分为7大列,10小项。

| file mode【文件模式】 | number of links【链接数】 | owner name【所属用户名】 | group name【所属组名】 | number of bytes in the file【文件字节数】 | The date of last modification【组后修改的日期】 | filename【文件名】 |

| — | — | — | — | — | — | — |

| File Type[文件类型] | 所有者权限 | 所属组的权限 | 其他用户权限 | 链接数 | 所有者 | 所属群组 | 文件的字节大小 | 最后修改时间 | 文件名 |

| — | — | — | — | — | — | — | — | — | — |

| - | rw- | rw- | r-- | 1 | root_test | root_test | 54908 | Apr 16 2014 | axel-2.4-9.el7.x86_64.rpm |

| d | rwx | rwx | r-x | 2 | root_test | root_test | 4096 | Oct 26 21:52 | test |

image.png

  1. 第一列共10位,第1位表示文档类型,d表示目录,-表示普通文件。后9位,依次对应三种身份所拥有的权限,身份顺序为:owner、group、others,权限顺序为:readable、writable、excutable,即可读、可写、可执行权限。如:-rwxr-xr–的含义为,当前文档是一个普通文件,所属用户可读、可写、可执行,同一个群组下的用户,可读、可执行,其他人只有可读取的权限。

  2. 第二列表示链接数,表示有多少个文件链接到inode号码。它表示的是硬链接数。

硬链接数并不表示实际的文件数。

硬链接(hard link, 也称链接)是指通过索引节点来进行的链接。

在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号(inode number)。

【关于inode参见最后一部分附:关于 inode 和 ls -li的介绍】

  1. 第三列表示拥有者,即文件所属用户

  2. 第四列表示所属用户组。

  3. 第五列表示文档容量大小,单位字节。

  4. 第六列表示文档最后修改时间,注意不是文档的创建时间!包括缩写的月(abbreviated month)、日、小时、分钟等。

  5. 第七列表示文档名称。以点 . 开头的是隐藏文件

关于第一行的文件块数和-k选项的问题

第一行显示的文件大小,默认的单位是 512 byte,除非指定 -k,指定选项 -k 将以 1024 byte(1kB blocks) 为单位。

该内容参考自 What does the first line “Total” indicate while executing the ls -l command in Linux? [closed],并且 POSIX文档 中也是这么说的。

可实际测试,在加 -k 和不加 -k 选项的情况下,Total显示的数字是一样的,具体原因未找到相关资料,不知是否是用法不对。

不加 -k 选项为 64:

$ ls -l

total 64

-rw-rw-r-- 1 root_test root_test 54908 Apr 16 2014 axel-2.4-9.el7.x86_64.rpm

drwxrwxr-x 2 root_test root_test 4096 Oct 26 21:52 test

-rw-rw-r-- 1 root_test root_test 0 Sep 3 17:40 Y6kkd1d

-k 选项仍为 64:

$ ls -lk

total 64

-rw-rw-r-- 1 root_test root_test 54908 Apr 16 2014 axel-2.4-9.el7.x86_64.rpm

drwxrwxr-x 2 root_test root_test 4096 Oct 26 21:52 test

-rw-rw-r-- 1 root_test root_test 0 Sep 3 17:40 Y6kkd1d

使用 --block-size 选项设置第一行显示的块大小

要查看不同单位的块大小的显示,可以使用 --block-size 选项。

ls -l --block-size=M 将会以近似 MiB 的文件大小显示。如果先要使用 MB (10^6 bytes) 而不是 MiB (2^20 bytes) 单位,可以使用 --block-size=MB 代替。

实际测试 --block-size=B--block-size=MB 看不出什么区别。

$ ls -l --block-size=M

total 1M

-rw-rw-r-- 1 root_test root_test 1M Apr 16 2014 axel-2.4-9.el7.x86_64.rpm

drwxrwxr-x 2 root_test root_test 1M Oct 26 21:52 test

-rw-rw-r-- 1 root_test root_test 0M Sep 3 17:40 Y6kkd1d

$ ls -l --block-size=k

total 64K

-rw-rw-r-- 1 root_test root_test 54K Apr 16 2014 axel-2.4-9.el7.x86_64.rpm

drwxrwxr-x 2 root_test root_test 4K Oct 26 21:52 test

-rw-rw-r-- 1 root_test root_test 0K Sep 3 17:40 Y6kkd1d

而且,还可以使用任何你想要的给定的数字单位,如 --block-size=1M--block-size=2k

$ ls -l --block-size=2k

total 32

-rw-rw-r-- 1 root_test root_test 27 Apr 16 2014 axel-2.4-9.el7.x86_64.rpm

drwxrwxr-x 2 root_test root_test 2 Oct 26 21:52 test

-rw-rw-r-- 1 root_test root_test 0 Sep 3 17:40 Y6kkd1d

关于 -h 选项(human readable)

ls -lh 可以获得长格式列表和 人类可读(human readable 的文件大小。

$ ls -lh

total 64K

-rw-rw-r-- 1 root_test root_test 54K Apr 16 2014 axel-2.4-9.el7.x86_64.rpm

drwxrwxr-x 2 root_test root_test 4.0K Oct 26 21:52 test

-rw-rw-r-- 1 root_test root_test 0 Sep 3 17:40 Y6kkd1d

ls -s 查看磁盘使用情况


$ ls -s

total 64

60 axel-2.4-9.el7.x86_64.rpm 4 test 0 Y6kkd1d

ls -a 显示隐藏文件和文件夹,即指定目录下的所有文件


Linux中,以 . 开头的文件或文件名就是隐藏文件。

默认 ls 查看文件时,并不会显示隐藏文件。可通过 -a--all)选项查看所有文件。

$ ls --all

. axel-2.4-9.el7.x86_64.rpm .bash_logout .bashrc .config .pki .viminfo

… .bash_history .bash_profile .cache .mozilla test Y6kkd1d

$ ls

axel-2.4-9.el7.x86_64.rpm test Y6kkd1d

结合 -l 查看,ls -al

$ ls -al

total 116

drwx------ 7 root_test root_test 4096 Oct 26 21:52 .

drwxr-xr-x. 7 root root 4096 Apr 11 2018 …

-rw-rw-r-- 1 root_test root_test 54908 Apr 16 2014 axel-2.4-9.el7.x86_64.rpm

-rw------- 1 root_test root_test 10633 Oct 28 14:04 .bash_history

-rw-r–r-- 1 root_test root_test 18 Dec 7 2016 .bash_logout

-rw-r–r-- 1 root_test root_test 193 Dec 7 2016 .bash_profile

-rw-r–r-- 1 root_test root_test 231 Dec 7 2016 .bashrc

drwxrwxr-x 3 root_test root_test 4096 Sep 2 11:36 .cache

drwxrwxr-x 3 root_test root_test 4096 Sep 2 11:36 .config

drwxr-xr-x 4 root_test root_test 4096 Jun 21 2019 .mozilla

drwxrw---- 3 root_test root_test 4096 Sep 2 11:41 .pki

drwxrwxr-x 2 root_test root_test 4096 Oct 26 21:52 test

-rw------- 1 root_test root_test 1985 Sep 3 09:44 .viminfo

-rw-rw-r-- 1 root_test root_test 0 Sep 3 17:40 Y6kkd1d

ls -lr


通常不会直接使用 ls -r 而是要结合 -l 使用。

-r 表示逆向排序显示;默认是以文件名逆序显示的。

$ ls -r

Y6kkd1d test axel-2.4-9.el7.x86_64.rpm

$ ls

axel-2.4-9.el7.x86_64.rpm test Y6kkd1d

结合 -l

$ ls -l -r

total 64

-rw-rw-r-- 1 root_test root_test 0 Sep 3 17:40 Y6kkd1d

drwxrwxr-x 2 root_test root_test 4096 Oct 26 21:52 test

-rw-rw-r-- 1 root_test root_test 54908 Apr 16 2014 axel-2.4-9.el7.x86_64.rpm

-r -t 可以实现按时间进行逆序显示(ls -l -r -t):

$ ls -lrt

total 64

-rw-rw-r-- 1 root_test root_test 54908 Apr 16 2014 axel-2.4-9.el7.x86_64.rpm

-rw-rw-r-- 1 root_test root_test 0 Sep 3 17:40 Y6kkd1d

drwxrwxr-x 2 root_test root_test 4096 Oct 26 21:52 test

以上所有命令都可以合并简写,如:ls -lrls -lrt

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

给大家整理的电子书资料:

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
26 21:52 test

以上所有命令都可以合并简写,如:ls -lrls -lrt

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

[外链图片转存中…(img-kqmnCPYT-1714624520224)]

给大家整理的电子书资料:

[外链图片转存中…(img-SlMd1B03-1714624520225)]

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 11
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值