暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

linux 命令之 ls 介绍

原创 不吃草的牛_Nick 2022-11-15
700

ls命令用来列出目标目录(缺省的话为当前目录)中所有的子目录和文件。指令英文原义:list

参数 长参数 描叙

-a -all 显示指定目录(缺省为当前目录)下所有文件,包括隐藏文件与目录
-A --almost-all 不显示隐藏的文件。(显示除"."和".."外的所有文件)
--author --author 需要与参数-l结合使用。显示文件的author
-b --escape print octal escapes for nongraphic characters(非显示字符进行转义打印);
把文件名中不可输出的字符用反斜杠加字符编号的形式输出
--block-size 查看文件的block大小。
K = Kilobyte
M
M = Megabyte
G
G = Gigabyte
T
T = Terabyte
P
P = Petabyte
E
E = Exabyte
Z
Z = Zettabyte
Y
Y = Yottabyte
-B --ignore-backups do not list implied entries ending with ~ 不显示以~结尾的文件。
-c 配合 -lt:根据 ctime排序及显示。 ctime (文件状态最后更改的时间)
-C 按列输出,纵向排序
--color 控制是否使用色彩分辨文件。WHEN 可以是'never'、'always'或'auto'其中之一
-d --directory 显示目录信息,而不是目录下的文件信息
-D --dired 输出适合 Emacs 的 dired 模式使用的结果
-f 对输出的文件不进行排序, -lst等选项会失效。
-F --classify 附加文件类别,符号在文件名最后。/表明是一个目录;@表明是到其它文件的符号链接;
* 表明是一个可执行文件。
--file-type
--format
--full-time
-g 类似参数-l,但是不列出所有者
-G 不列出任何有关组的信息
-h 人性化显示容量信息。表示"–human-readable",单位是k或者M ,比较容易看清楚结果
--si 类似参数h,但是文件大小去1000,而不是1024
-H 列出符号链接指示的真正的目的地
--dereference-command-line-symlink-to-dir
--hide
--indicator-style
-i 列出文件或目录的索引节点号
-I do not list implied entries matching shell PATTERN
-k 以k 字节的形式表示文件的大小
-l 使用长格式显示。显示详细信息,例如是文件还是目录,它的大小、修改日期和时间、
文件或目录的名字以及文件的属主和它的权限
-L 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息
-m 所有项目以逗号分隔,并填满整行行宽
-n 以数字显示文件和目录的UID和GID
-N 此选项将不限制文件长度
-o 显示文件除组信息以外的详细信息。
-p 该ls命令选项可以在每个文件名后附上一个字符以说明该文件的类型,
"*"表示可执行的普通文件;"/"表示目录;"@"表示符号链接;"|"表示FIFOs;"="表示套接字(sockets)。
-q 该选项可以用?代替不可输出的字符
--indicator-style
-Q 该选项可以把输出的文件名用双引号括起来
--quoting-style=WORD
-r 倒序方式显示文件和目录
-R 递归显示子目录
-s 以块大小为单位列出所有文件的大小
-S 以文件大小排序
--sort=WORD
extension -X status -c
none -U time -t
size -S atime -u
time -t access -u
version -v use -u
--time=WORD
--time-style=STYLE
-t 以文件修改时间排序,默认按文件名排序。
-T assume tab stops at each COLS instead of 8
-u 显示文件或目录最后被访问的时间。
-U 不进行排序;依文件系统原有的次序列出项目
-v 根据版本进行排序
-w 自行指定屏幕宽度而不使用目前的数值
-x 逐行列出项目而不是逐栏列出
-X 根据扩展名排序
-1 每行只列一个文件
--help 显示此帮助信息
-version 显示版本信息


[oracle@db02 ~]$ ll
total 20032
drwxr-xr-x 3 oracle oinstall 180 Feb 19 2021 ces
-rw-r--r-- 1 oracle oinstall 809524 Sep 15 10:59 ces.zip


第一个行: total后面的数字是指当前目录下所有文件所占用的空间总和,怎么计算的呢?请看下面解释:
文件系统(filesytem)在格式化时就规范好了块(block)的大小,在ext2/ext3的环境下,blok size的大小不变

[root@DB-Server ]# tune2fs -l /dev/sda3 | grep "Block size"
Block size: 4096

每一个block仅能容纳一个文件, 如果块大小为4K, 而文件只有1K,则会有3K的空间被浪费,而total里面记录的是4K的容量,
所以total里面计算的是下图第一列,而不是第6列的大小。
[oracle@db02 ~]$ ll -s
total 792
0 drwxr-xr-x 3 oracle oinstall 180 Feb 19 2021 ces
792 -rw-r--r-- 1 oracle oinstall 809524 Sep 15 10:59 ces.zip


第1字段: 文件属性字段
文件属性字段总共有10个字母组成,第一个字符表示文件类型

字母"-"表示该文件是一个普通文件
字母"d"表示该文件是一个目录
字母"l"表示该文件是一个链接文件
字母"b" 表示该文件是块设备文件(block),一般置于/dev目录下,设备文件是普通文件和程序访问硬件设备的入口,一类特殊文件。
字母"c"表示该文件是一个字符设备文件(character)
字母"p"表示该文件为命令管道文件。与shell编程有关的文件。
字母"s"表示该文件为sock文件。与shell编程有关的文件。


第1字符的后面9个字母表示该文件或目录的权限位。
其中前三个表示文件拥有者的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权限
r表是读 (Read) 、w表示写 (Write) 、x表示执行 (eXecute)

第2字段:文件硬链接数
如果一个文件不是目录,此时这一字段表示这个文件所具有的硬链接数

第3字段:文件(目录)拥有者
第4字段:文件(目录)拥有者所在的组
第5字段: 文件所占用的空间(以字节为单位)
第6字段:文件(目录)最近访问(修改)时间
第7字段:文件名

2:找出目标目录下有多少个文件和文件夹。实际文件和文件夹总数应该用所得值减掉1。
ls -l | wc -l
ls -l | sed /^total/d | wc -l

3:查看文件的author
ls -l --author

4:不显示以~结尾的文件
ls -lB

5:按不同block-size来查看文件的大小
ls -l --block-size=8192
ls -l --block-size=4096

7:按文件大小从大到小排序
ls -lS

按文件大小从小到大排序
ls -lrS

8:按创建时间排列文件
ls -lt

9:所有项目以逗号分隔,并填满整行行宽
ls -m

10:列出文件并按某个属性排序。
ls -l --sort=size
ls -l --sort=time

如果我们希望只列出目录,我们可以使用-d选项。
ls -d */


参考资料:

https://linux.cn/article-2535-1.html


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论