ls: 显示目下的内容及相关属性信息

【功能说明】

  ls 命令可以理解为英文单词 “list” 的缩写,其功能是列出目录的内容及其内容属性信息(list directory contents)。该命令有点类似于DOS系统下的dir命令,有趣的是,Linux下其实也有dir命令,但是我们更习惯于使用ls命令。

【语法格式】

1 ls    [option]     [file]
2 ls   【选项】 【文件或者目录】

 提示说明:

  1) ls命令以及后面的选项和文件,每个元素之间都要至少要有一个空格。

  2) 命令后面的选项和目录文件可以省略,表示查看当前路径的文件信息

【命令参数说明】

参数选项 解释说明
-l 使用长格式列出文件及目录信息
-a 显示目录下的所有文件,包括以 “.” 字符开始的隐藏文件
-t 根据最后的修改时间(mtime)排序,默认是以文件名排序
-r 依相反次序排序
-F 在条目后加文件类型的指示符号(*、/、=、@、|,其中的一个)
-P 只在目录后面加上 “/”
-i 显示文件或目录的inode节点信息
-d 当遇到目录时,列出目录本身而非目录内的文件,并且不跟随符号链接
-h 以人类可读的信息显示文件或目录大小,如1kb、1M、1G等显示格式
-S 根据文件大小排序
-R 递归列出所有子目录
-x 逐行列出项目而不是逐栏列出
-X 根据扩展名排序
-c 根据状态改变时间(ctime)排序
-u 根据最后访问时间(atime)排序
--color={never,always,auto} 不同的文件类型显示不同的颜色参数,never表示不显示,always表示总是显示,auto表示自动显示
--full-time 以完整的时间格式输出
--time-style={full-iso,long-ios,ios,locale} 以不同的时间格式输出,long-iso效果最好
--time={atime,ctime} 按不同的时间属性输出,atime表示按访问时间,ctime表示按改变权限属性时间,如果不加此参数则默认认为最后的修改时间。
   

【使用范例】

在开始范例讲解之前,需要先做一些准备,顺便整合一下前面使用的命令。

 1 [root@test-1 ansible]# mkdir -p /test
2 [root@test-1 ansible]# cd /test/
3 [root@test-1 test]# touch file{1..5}.txt
4 [root@test-1 test]# mkdir -p dir{1..5}
5 [root@test-1 test]# tree
6 .
7 ├── dir1
8 ├── dir2
9 ├── dir3
10 ├── dir4
11 ├── dir5
12 ├── file1.txt
13 ├── file2.txt
14 ├── file3.txt
15 ├── file4.txt
16 └── file5.txt
17
18 5 directories, 5 files

1.基础范例

1.1 案例1:直接指向ls命令,不带任何参数。

1 [root@test-1 test]# ls
2 dir1 dir2 dir3 dir4 dir5 file1.txt file2.txt file3.txt file4.txt file5.txt

1.2 案例2:使用-a参数显示所有文件,特别是隐藏文件。

1 [root@test-1 test]# touch .file6.txt     #在创建一个隐藏文件,在linux系统中“.”(点号)开头的文件就是隐藏文件
2 [root@test-1 test]# ls
3 dir1 dir2 dir3 dir4 dir5 file1.txt file2.txt file3.txt file4.txt file5.txt
4 [root@test-1 test]# ls -a
5 . .. dir1 dir2 dir3 dir4 dir5 file1.txt file2.txt file3.txt file4.txt file5.txt .file6.txt
6 #提示:
7 #加了-a参数,就会把以“.”(点号)开头的内容显示出来了,这里显示的第一个点号,表示当前目录,即test目录本身,而两个点号则表示当前目录的上级目录,此处就代表根目录了。有关一个点、两个点的知识,在后面的ln命令中会有详细讲解
8 [root@test-1 test]# ls -A #列出所有文件,包括隐藏文件,但不包括 “.” 与 “..”这两个目录
9 dir1 dir2 dir3 dir4 dir5 file1.txt file2.txt file3.txt file4.txt file5.txt .file6.txt

1.3 案例3:使用-l参数显示详细信息

[root@test-1 test]# ls -l      #此处的时间属性列默认显示的是文件的最后一次修改时间
total 0
drwxr-xr-x 2 root root 6 Sep 21 07:06 dir1
drwxr-xr-x 2 root root 6 Sep 21 07:06 dir2
drwxr-xr-x 2 root root 6 Sep 21 07:06 dir3
drwxr-xr-x 2 root root 6 Sep 21 07:06 dir4
drwxr-xr-x 2 root root 6 Sep 21 07:06 dir5
-rw-r--r-- 1 root root 0 Sep 21 07:06 file1.txt
-rw-r--r-- 1 root root 0 Sep 21 07:06 file2.txt
-rw-r--r-- 1 root root 0 Sep 21 07:06 file3.txt
-rw-r--r-- 1 root root 0 Sep 21 07:06 file4.txt
-rw-r--r-- 1 root root 0 Sep 21 07:06 file5.txt
#提示:
#说明:这个-l参数是最常用的参数了,意思是用长格式列出目录下的文件类型、权限、连接数、属主、属组及创建修改时间的信息。这里每个列的属性含义都需要熟练掌握,后文会详细说明这些属性信息

可能有人已经注意到了,创建或修改时间的格式没有年份的信息,那么如何显示时间全部信息呢,请看案例4

1.4 案例4:显示完整时间属性的参数 --time-style=long-iso

 1 [root@test-1 test]# ls -l --time-style=long-iso    #以long-iso方式显示时间
2 total 0
3 drwxr-xr-x 2 root root 6 2019-09-21 07:06 dir1
4 drwxr-xr-x 2 root root 6 2019-09-21 07:06 dir2
5 drwxr-xr-x 2 root root 6 2019-09-21 07:06 dir3
6 drwxr-xr-x 2 root root 6 2019-09-21 07:06 dir4
7 drwxr-xr-x 2 root root 6 2019-09-21 07:06 dir5
8 -rw-r--r-- 1 root root 0 2019-09-21 07:06 file1.txt
9 -rw-r--r-- 1 root root 0 2019-09-21 07:06 file2.txt
10 -rw-r--r-- 1 root root 0 2019-09-21 07:06 file3.txt
11 -rw-r--r-- 1 root root 0 2019-09-21 07:06 file4.txt
12 -rw-r--r-- 1 root root 0 2019-09-21 07:06 file5.txt
13
14 #提示:这样的时间格式看起来是不是总让人感到心情舒畅呢,关于--time-style的其他可选参数,请大家自行测试

对于上面的命令,说明如下:

  1)--time-style 可选的参数值有如下几个,如full-iso、long-iso、iso、locale。默认值是locale

  2)在生产场景中经常会遇到同一个目录下的文件及目录时间的显示不一致的问题,所以需要使用 ls -l --time-style=long-iso 来调整,如果觉得参数太多不好记,则可以设置一个别名管理,见后文的alias命令

  3)值得一提的是,执行ls -l等命令时,默认显示的是文件最后一次的修改时间(如果是新文件那么就是创建时间了)

  4)ls --full-time用于显示完整时间,等同于ls -l --time-style=full-iso

    既然ls -l输出结果的时间属性列为修改时间,那么能否改成其他的时间,例如:显示最后一次文件访问时间,这当然也是可以的,具体请参考案例5

1.5 案例5:执行ls命令,带显示内容的访问时间属性的参数

 1 [root@test-1 test]# stat file1.txt              #显示文件的属性及状态信息,
2 File: ‘file1.txt’
3 Size: 0 Blocks: 0 IO Block: 4096 regular empty file
4 Device: fd00h/64768d Inode: 100825163 Links: 1
5 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
6 Access: 2019-09-21 07:06:01.923683869 -0400 #这里就是文件的访问时间,是我们现在需要关注的
7 Modify: 2019-09-21 07:06:01.923683869 -0400
8 Change: 2019-09-21 07:06:01.923683869 -0400
9 Birth: -
10 [root@test-1 test]# date #查看当前系统时间
11 Sat Sep 21 07:51:47 EDT 2019
12 [root@test-1 test]# cat file1.txt #查看文件内容即表示访问了文件,
13 [root@test-1 test]# stat file1.txt #重新查看文件的访问时间
14 File: ‘file1.txt’
15 Size: 0 Blocks: 0 IO Block: 4096 regular empty file
16 Device: fd00h/64768d Inode: 100825163 Links: 1
17 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
18 Access: 2019-09-21 07:52:12.945530547 -0400 #可以发现file1.txt的访问时间已经发生了变化
19 Modify: 2019-09-21 07:06:01.923683869 -0400
20 Change: 2019-09-21 07:06:01.923683869 -0400
21 Birth: -
22 [root@test-1 test]# ls -l --time-style=long-iso --time=atime #增加--time=atime参数,显示访问时间
23 total 0
24 drwxr-xr-x 2 root root 6 2019-09-21 07:06 dir1
25 drwxr-xr-x 2 root root 6 2019-09-21 07:06 dir2
26 drwxr-xr-x 2 root root 6 2019-09-21 07:06 dir3
27 drwxr-xr-x 2 root root 6 2019-09-21 07:06 dir4
28 drwxr-xr-x 2 root root 6 2019-09-21 07:06 dir5
29 -rw-r--r-- 1 root root 0 2019-09-21 07:52 file1.txt #文件的时间列确实发生了改变,是前面的访问的时间无疑
30 -rw-r--r-- 1 root root 0 2019-09-21 07:06 file2.txt
31 -rw-r--r-- 1 root root 0 2019-09-21 07:06 file3.txt
32 -rw-r--r-- 1 root root 0 2019-09-21 07:06 file4.txt
33 -rw-r--r-- 1 root root 0 2019-09-21 07:06 file5.txt
34 [root@test-1 test]# ls -l --time-style=long-iso
35 total 0
36 drwxr-xr-x 2 root root 6 2019-09-21 07:06 dir1
37 drwxr-xr-x 2 root root 6 2019-09-21 07:06 dir2
38 drwxr-xr-x 2 root root 6 2019-09-21 07:06 dir3
39 drwxr-xr-x 2 root root 6 2019-09-21 07:06 dir4
40 drwxr-xr-x 2 root root 6 2019-09-21 07:06 dir5
41 -rw-r--r-- 1 root root 0 2019-09-21 07:06 file1.txt #这里是文件的默认修改时间列
42 -rw-r--r-- 1 root root 0 2019-09-21 07:06 file2.txt
43 -rw-r--r-- 1 root root 0 2019-09-21 07:06 file3.txt
44 -rw-r--r-- 1 root root 0 2019-09-21 07:06 file4.txt
45 -rw-r--r-- 1 root root 0 2019-09-21 07:06 file5.txt

提示:通过上面实践,可以得出结论了,--time=atime显示的确实是访问时间,而非默认的修改时间。

对于上的命令,需要说明如下两点

  1)与之相关命令还有ls -l --time-style=long-iso --time=ctime,用于显示文件改变的时间

  2)有关文件时间列及mtime、atime、ctime的知识,touch命令时已经写出来了

1.6 案例6:执行ls 命令,带 -F参数(这一点和tree命令有点类似)

 1 [root@test-1 test]# ls -F    # -F 我们可以清晰的看到所有的目录的结尾都被加上了斜线 "/"
2 dir1/ dir2/ dir3/ dir4/ dir5/ file1.txt file2.txt file3.txt file4.txt file5.txt
3 [root@test-1 test]# ls -F |grep / #过滤目录
4 dir1/
5 dir2/
6 dir3/
7 dir4/
8 dir5/
9 [root@test-1 test]# ls -F |grep -v / #排除所有目录,过滤出文件
10 file1.txt
11 file2.txt
12 file3.txt
13 file4.txt
14 file5.txt

ls: 显示目下的内容及相关属性信息的更多相关文章

  1. ls 显示目录下的内容和文件相关属性信息

    1.命令功能 ls命令是“list directory contents”,显示当前目录下的内容和文件属性. 2.语法格式 ls  [option]  file ls  选项  文件名 3.选项说明 ...

  2. Salesforce LWC学习(三十四) 如何更改标准组件的相关属性信息

    本篇参考: https://www.cnblogs.com/zero-zyq/p/14548676.html https://www.lightningdesignsystem.com/platfor ...

  3. Activity Intent Flags及Task相关属性

    转自http://www.cnblogs.com/lwbqqyumidi/p/3775479.html 今天我们来讲一下Activity的task相关内容. 上次我们讲到Activity的四种启动模式 ...

  4. css中的字体及文本相关属性

    css中的字体及文本相关属性 1.字体相关属性 字体主要可以设置color.font-family.font-size.font-size-adjust.font-stretch.font-style ...

  5. Android总结篇系列:Activity Intent Flags及Task相关属性

    同上文一样,本文主要引用自网上现有博文,并加上一些自己的理解,在此感谢原作者. 原文地址: http://blog.csdn.net/liuhe688/article/details/6761337 ...

  6. IOS开发UI基础UITextView相关属性

    UITextView相关属性 •    text: 设置textView中文本_textView.text = @"Now is the time for all good develope ...

  7. IOS开发UI基础UITextFidle相关属性

    UITextFidle相关属性 •    enablesReturnKeyAutomatically默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的. ...

  8. UILabel的相关属性设置

    在iOS编程中UILabel是一个常用的控件,下面分享一下UILabel的相关属性设置的方法. 很多学习iOS6编程都是从storyboard开始,用到UILabel时是将控件拖到storyboard ...

  9. 【转】Android总结篇系列:Activity Intent Flags及Task相关属性

    [转]Android总结篇系列:Activity Intent Flags及Task相关属性 同上文一样,本文主要引用自网上现有博文,并加上一些自己的理解,在此感谢原作者. 原文地址: http:// ...

随机推荐

  1. 手机预览本地html

    下载nginx,地址http://nginx.org/en/docs/windows.html 解压后替换html中内容即可 在浏览器输入http://localhost/即可预览    或者换成ip ...

  2. Activiti7 启动流程实例

    package com.itheima.activiti; import org.activiti.engine.ProcessEngine; import org.activiti.engine.P ...

  3. 深入理解Go系列一之指针变量

    指针变量 基本概念 &a,代表 a 变量的内存地址 p,代表一个句柄引用(句柄由实例数据指针与实例类型指针两部分组成) ,句柄的好处是,当实例数据值改变时,不需要改动实例数据指针与实例类型指针 ...

  4. Java实现获取命令行中获取指定数据

    执行ipconfig /all获取主机所有网卡信息并分析这些字符串,提取出有效网卡(网卡名称,mac地址,ipv4地址,掩码,网关,dns)将网卡插入HashMap中,key是网卡的名称,value是 ...

  5. boostrap栅格系统自适应的布局

    1.栅格系统 ​ Bootstrap是基于移动优先的原则开发的,使用了一系列的媒体查询(media queries)方法,为我们的布局和界面创建自适应的的分界点.这些分界点主要是基于视口宽度的最小值, ...

  6. 吴恩达《深度学习》-第五门课 序列模型(Sequence Models)-第二周 自然语言处理与词嵌入(Natural Language Processing and Word Embeddings)-课程笔记

    第二周 自然语言处理与词嵌入(Natural Language Processing and Word Embeddings) 2.1 词汇表征(Word Representation) 词汇表示,目 ...

  7. [LeetCode]301. 删除无效的括号(DFS)

    题目 题解 step1. 遍历一遍,维护left.right计数器,分别记录不合法的左括号.右括号数量. 判断不合法的方法? left维护未匹配左括号数量(增,减)(当left为0遇到右括号,则交由r ...

  8. js之按钮切换

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  9. archaius(4) 属性对象

    讲完上一节,我们就可以使用合理的配置管理器或者实现自己的配置管理来管理我们的配置项了.archaius还提供了一种新的配置使用的方式. 动态属性对象 动态属性对象针对每个配置项以对象方式进行操作,并且 ...

  10. 企业面试中关于MYSQL重点的28道面试题解答

      问题1:char.varchar的区别是什么? varchar是变长而char的长度是固定的.如果你的内容是固定大小的,你会得到更好的性能. 问题2: TRUNCATE和DELETE的区别是什么? ...