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. ORA-01033错误解决方案-九五小庞

    Microsoft Windows [版本 6.3.9600](c) 2013 Microsoft Corporation.保留所有权利. C:\Users\Administrator>sqlp ...

  2. 业务级别MySQL

    业务级别MySQL 目录 业务级别MySQL 1. 权限管理和备份 1. 用户管理 1. SQLyog可视化操作 2. SQL命令操作 2. MySQL备份 3. 规范数据库设计 1. 为什么需要设计 ...

  3. window下dos命令

    引用 Windows下DOS命令 显示当前目录所有文件 dir 创建文件夹 md test 创建文件 cd>a.txt 删除文件 del a.txt 删除文件夹 rd test 在某磁盘打开不同 ...

  4. pytest132个命令行参数用法

    在Shell执行pytest -h可以看到pytest的命令行参数有这10大类,共132个 序号 类别 中文名 包含命令行参数数量 1 positional arguments 形参 1 2 gene ...

  5. IMX6ULL开发板Linux_WIFI驱动实验

    1.在迅为i.MX6ULL开发板上使用的是 usb 接口的 RTL8723 wifi 模块,原理图如下所示:可以看到 RTL8723 模块的接口非常简单,只有 DP1 和 DM1 连接到 usb HU ...

  6. CSS居中的多种方法

    1.水平居中:text-align 与 inline-block 的配合 <div id = "div_center_align"> <div id = &quo ...

  7. linux基础命令一、

    命令格式:  命令  -选项   参数 uname -r   查看内核版本 uname -m 查看系统版本 alias 别名. 举例: alias grep ='grep --color=auto' ...

  8. 将虚拟机IP与主机IP设置在同一网段的方法

    一.查看主机的网卡名称.IP地址.子网掩码 二.设置VMware Workstation软件 打开虚拟网络编辑器 弹出对话框,选择"更改设置"按钮. 进入虚拟网络编辑器 单选项选择 ...

  9. java中双亲委派机制(+总结)

    类加载器 加载类的开放性 类加载器(ClassLoader)是Java语言的一项创新,也是Java流行的一个重要原因.在类加载的第一阶段"加载"过程中,需要通过一个类的全限定名来获 ...

  10. oracle数据处理之sql loader(三)

    数据装载 sql loader(PPT-I-490-498) 14.1 sql*loader:将外部数据(比如文本型)数据导入oracle database.(用于数据导入.不同类型数据库数据迁移) ...