ls 命令是 Linux 下最常用的命令之一,用来查询目录下的内容(list directory contents)。本文将介绍其基本的用法和一些典型的用例。笔者使用的测试环境为 ubuntu 16.04。

基本输出

直接在命令行中输入 ls 并回车。这是最精简的用法,因为我们省略了所有的选项和参数,输出的结果是当前目录下的文件名和目录名:

文件名和目录名称被按照字母序混排在一起,以列为单位从左到右排列。需要注意的是此时的输出并不包含隐藏文件和隐藏的目录。
如果想要调整输出结果的排序方式,可以使用 -r 选项来逆序输出的顺序:

$ ls -r

此时以 w 开头的名称排在了第一个位置。-r 选项的含义为把排序方式颠倒,所以在使用其它方式排序后也可以使用这个选项来颠倒排序的结果。

显示隐藏文件

在 Linux 中以 . 号(dot)开头的目录和文件被理解为隐藏文件。ls 命令默认不会列出这些文件,除非你指定了 -a 选项。-a 选项其实是显示所有的文件,包含隐藏的文件和目录。在用户的家目录下试试 ls -a 命令,你会发现有不少的隐藏目录和隐藏文件呢!

上图中以 . 开头的都是隐藏目录或文件。

使用长格式显示更多信息

长格式能够提供更多的信息,比如文件和目录的大小,最后更新的时间,所有者及其权限。使用 -l (小写的字母L) 选项可以输出长格式的信息:

此时每行显示一个文件或者目录的信息。第一个字母描述文件类型:- 为一般文件,d 为目录,l 为符号链接。接下来的 9 个字符说明文件权限的信息:针对每个用户、组以及除此以外的其它人。r 表示读取,w 表示写入,x 表示执行,如果未提供权限则是 -。

第二栏包含链接计数。第三栏和第四栏分别显示所有者与所属组。

第五栏则是以字节为单位显示的文件大小。在 Linux 命令中,涉及到文件大小的地方,一般默认是以字节为单位显示的。这样可读性就不是很好。所以有了 -h 选项!这个选项的全称是 --human-readable(给人读的)。也就是以 K, M, G 等单位来显示文件的大小:

在应用 l 选项的同时应用 h 选项,会以合适的单位显示文件大小,比如上图中已经变成以 K 为单位显示了。

接下来的三栏是最后修改时的时间戳。显示的顺序为月,日,年。但是仔细观察你会发现只有一些行在年的位置显示了年份(2017),其它的行在这个位置显示的都是一个时间。这里有一个规则:最后修改时间如果超过六个月才显示为年份,六个月以内的则显示为时间。如果你想要得到更精确的时间,可以同时使用 --full-time 选项:

此时显示的时间精度为百万分之一秒,并且会显示出时区的信息。

关于时间戳我们还需要知道另外一点,默认在这里显示的时间是 mtime。如果我们需要显示 atime 或者是 ctime 该怎么办?此时就要用到 --time 选项来设置时间戳显示的时间类型:

对比前面的图片,设置为 atime 后,显示的时间信息发生了明显的变化。

通配符

在 ls 命令中使用通配符有时会产生一些比较奇怪的结果,接下来笔者将尝试解释通配符在 ls 命令中的使用方式。
在 ls 命令中使用 * 和 ?等通配符时首先发生的是 shell 的展开!
Bash 会扫描命令行中的每一个单词,如果在其中发现了 *, ? 或者是 [,那么这个单词就被认为是一个模式。然后用匹配的以字母序排列的文件名称列表替换这个模式。说简单点,在 ls 命令执行前,Bash 会进行模式匹配并进行替换。然后 ls 使用替换后的参数执行命令。举个例子:

$ ls test*

如果当前目录中有一个名为 test 的目录和一个名为 testsql 的目录,那么 Bash 替换完成后命令是这个样子:

$ ls test testsql

所以上面的命令会列出这两个目录下的所有文件:

再来个例子,在用户的家目录下执行下面的命令:

$ ls D*

用户家目录下一般会存在 Desktop,Documents 和 Downloads 目录,所以 D* 会被展开为 "Desktop Documents Downloads",最终 ls 执行的命令变成了:

$ ls Desktop Documents Downloads

这些目录下的文件都会被添加到命令的输出中。
好了,当你理解了 Bash 展开的过程后,我想你就可以解释那些乍一看让人摸不着头脑的输出结果了!

关于通配符,还有一点需要注意:默认不会匹配到隐藏的文件,即便指定 a 选项也不行:

如果要匹配隐藏文件,需要显式的指定 . 号,比如:

$ ls -d .*

这里的 d 选项本身与隐藏文件无关,我们会在接下来详细介绍。

d 选项详解

d 选项的描述为:显示目录自身,而不显示其内容。所以使用 d 选项可以轻松的查看当前目录或是指定目录的信息:

如果去掉 d 选项则会输出这些目录下的内容。

d 选项还能够在使用通配符过滤时保证子目录的内容不会被输出:

这是一种比较常见的使用方式,加上 d 选项能保证结果符合我们的预期。

我们还可以通过 d 选项过滤出当前目录下的所有子目录:

$ ls –d */

看上去很神奇,其实这与我们前面执行的 ls -d my* 命令是一样的,只不过这次 Bash 过滤了以 / 号结尾的名称,而以 / 号结尾的名称都是目录的名称!

排序

ls 命令的输出默认是以字母序排列的,只是隐藏文件的 . 号没有参与排序规则。除了字母序,我们还能以文件的大小或最后修改时间为排序条件。
S 选项会以文件的大小为条件排列输出的结果:

默认的顺序为从大到小排列,你可以使用 r 选项来反转这个顺序。需要注意的是,所有目录的大小都是一样的,总为 4096 字节。

t 选项默认则以文件的最后修改时间(mtime)为条件排列输出的结果:

默认的顺序为最新修改的文件在最顶端,你可以使用 r 选项来反转这个顺序。这里你还可以通过 --time 选项改变长格式输出的时间类型(比如 atime 或 ctime),t 选项会以你指定的时间类型进行排序。

区分文件与目录

F 选项可以用来区分目录与文件。默认情况下 p 与 F 选项的表现是相同的。都是在目录的结尾添加斜线(/):

因此在命令中我们可以通过结尾处的斜线(/)过滤出文件:

$ ls -F |grep -v /
$ ls -p |grep -v /

或过滤出目录:

$ ls -F |grep /$
$ ls -p |grep /$

总结

除了本文介绍的基本用法和常用的选项,ls 命令还有很多的选项可以提供更多的功能。比如 i 选项可以显示文件的 inode 信息等等。所以 ls 是一个看似简单实则功能强大的命令。

转载于:https://www.cnblogs.com/sparkdev/p/7476005.html

linux ls 命令相关推荐

  1. linux ls命令全称,Linux ls命令的使用

    1.简介 ls命令用来显示目录内容,在Linux中是使用率较高的命令.ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件. 2.命令格式 ls [OPTION]... [FILE]... 3 ...

  2. 【linux】——linux ls命令参数及用法详解---linux显示目录内容命令

    linux系统中ls命令的用法详解 ls命令是linux下最常用的命令.ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单. ...

  3. Linux find命令、Linux rmdir命令、Linux ls命令

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Linux find命令用来在指定目录下查找文件.任何位于参数之前的字符串都将被视为欲查找的目录名. ...

  4. linux命令ls查看内存,Linux ls 命令详解

    Linux ls命令详解 Linux中ls命令用于显示指定工作目录下之内容,其内容就是指定的工作目录所含之文件及子目录,该命令的用法为"ls [参数] [目录名]",其常用参数有& ...

  5. linux ls ',Linux ls命令 - Linux 教程 - 自强学堂

    Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录). 语法ls [-alrtAFR] [name...] 参数:-a 显示所有文件及目录 (ls内定将文件名或目录名 ...

  6. Linux中ls查看前十个文件,linux ls命令的20个实用范例

    Linux中一个基本命令是ls.没有这个命令,我们会在浏览目录条目时会遇到困难.这个命令必须被每个学习Linux的人知道.接下来是小编为大家收集的linux ls命令的20个实用范例,欢迎大家阅读: ...

  7. 使用ls命令查看Linux的目录结构,linux ls命令查看目录文件详解

    首页 > Linux教程 > 常用命令 > ls 查看目录文件 linux ls命令查看目录文件详解 linux中ls命令用来查看目录中的所有文件和子目录,可选的参数比较多,本文筛选 ...

  8. linux的ls命令没反应,Linux:ls命令如何使用

    原标题:Linux:ls命令如何使用 1.ls命令可以在Linux中显示出文件和目录,如下图.当然,ls命令不可能只能实现这么简单的操作,下面就通过一些参数来查看ls的其他用法 2.ls -l,使用长 ...

  9. linux显示当前目录下文件,Linux显示当前目录有哪些文件命令-linux ls命令详解-嗨客网...

    Linux显示当前目录文件(ls)教程 在 Linux ls命令详解 功能 显示当前目录或指定路径下面的文件列表. 语法 ls [options] [dirname] 参数 参数 描述 options ...

  10. linux ls 命令 路径,使用ls命令在Linux中使用完整路径列出文件

    许多人会发现,这是重复的问题,但我已经经历了所有问题,然后问及这个主题,但没有为我工作.使用ls命令在Linux中使用完整路径列出文件 我想打印使用ls命令的特定文件格式的完整路径名到目前为止,我发现 ...

最新文章

  1. js基础到精通全面教程--JS教程(转载)--推荐
  2. ios网络学习------8 xml格式数据的请求处理 用代码块封装
  3. 我的手机应用创业的头一年
  4. 轉Excel的一種簡單方法
  5. ps法线贴图插件_法线与置换贴图原理讲解以及烘焙制作!
  6. 如何判断数组所有数都不等于一个数_工程师编程,C语言学习,关于数组方面的一些总结...
  7. java将csv导入hdfs_把HDFS里的json数据转换成csv格式
  8. 基于51单片机ds18b20智能温控风扇Proteus仿真
  9. matlab仿真整流电路设计,基于Matlab GUI的整流电路仿真设计[图]
  10. 快速排序C语言实现 - 源码详解
  11. Windows高效文件搜索工具/Everything/Listary/uTools
  12. Openssl 编译
  13. parameter缩略语_WB 术语及缩略语表
  14. 2012CSDN网站八大职位急聘:PHP开发工程师、Ruby开发工程师、UI设计师、网络工程师、问答社区编辑、问答社区运营专员、移动频道编辑、软件研发频道编辑
  15. 40原一脸嫌弃C96画册_柳岩去相亲,男嘉宾却让郑爽嫌弃摇头,耿直言行有点不礼貌...
  16. 为什么post请求前先发一个options 请求?
  17. zynq系列通过XMD进行JTAG调试出错解决方案
  18. 【汇正财经】什么是市盈率?
  19. 世界最小量子计算机诞生,离子阱量子技术或成为最终赢家?
  20. 微信小程序引入插件报错

热门文章

  1. [VB.NET]文件观察对象FileSystemWatcher
  2. 做更好的“教练”,用对抗训练增强“知识追踪”
  3. MMSegmentation:标准统一的语义分割框架
  4. 字节跳动AI Lab 秋季提前批招聘
  5. 阿里北大:深度哈希算法最新综述
  6. 仅信用卡大小,性能比TX2强15倍,英伟达边缘AI计算新品Jetson Xavier NX
  7. 吴恩达《机器学习训练秘籍》中文版58章节完整开源
  8. Python系统学习流程图, 教你一步步学习python
  9. 北大校友的算法被玩出新高度,AI自动化在线抠图
  10. 论文 | 《深度学习系统的隐私与安全》综述论文,187篇文献总结