linux ls 命令
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 命令相关推荐
- linux ls命令全称,Linux ls命令的使用
1.简介 ls命令用来显示目录内容,在Linux中是使用率较高的命令.ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件. 2.命令格式 ls [OPTION]... [FILE]... 3 ...
- 【linux】——linux ls命令参数及用法详解---linux显示目录内容命令
linux系统中ls命令的用法详解 ls命令是linux下最常用的命令.ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单. ...
- Linux find命令、Linux rmdir命令、Linux ls命令
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Linux find命令用来在指定目录下查找文件.任何位于参数之前的字符串都将被视为欲查找的目录名. ...
- linux命令ls查看内存,Linux ls 命令详解
Linux ls命令详解 Linux中ls命令用于显示指定工作目录下之内容,其内容就是指定的工作目录所含之文件及子目录,该命令的用法为"ls [参数] [目录名]",其常用参数有& ...
- linux ls ',Linux ls命令 - Linux 教程 - 自强学堂
Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录). 语法ls [-alrtAFR] [name...] 参数:-a 显示所有文件及目录 (ls内定将文件名或目录名 ...
- Linux中ls查看前十个文件,linux ls命令的20个实用范例
Linux中一个基本命令是ls.没有这个命令,我们会在浏览目录条目时会遇到困难.这个命令必须被每个学习Linux的人知道.接下来是小编为大家收集的linux ls命令的20个实用范例,欢迎大家阅读: ...
- 使用ls命令查看Linux的目录结构,linux ls命令查看目录文件详解
首页 > Linux教程 > 常用命令 > ls 查看目录文件 linux ls命令查看目录文件详解 linux中ls命令用来查看目录中的所有文件和子目录,可选的参数比较多,本文筛选 ...
- linux的ls命令没反应,Linux:ls命令如何使用
原标题:Linux:ls命令如何使用 1.ls命令可以在Linux中显示出文件和目录,如下图.当然,ls命令不可能只能实现这么简单的操作,下面就通过一些参数来查看ls的其他用法 2.ls -l,使用长 ...
- linux显示当前目录下文件,Linux显示当前目录有哪些文件命令-linux ls命令详解-嗨客网...
Linux显示当前目录文件(ls)教程 在 Linux ls命令详解 功能 显示当前目录或指定路径下面的文件列表. 语法 ls [options] [dirname] 参数 参数 描述 options ...
- linux ls 命令 路径,使用ls命令在Linux中使用完整路径列出文件
许多人会发现,这是重复的问题,但我已经经历了所有问题,然后问及这个主题,但没有为我工作.使用ls命令在Linux中使用完整路径列出文件 我想打印使用ls命令的特定文件格式的完整路径名到目前为止,我发现 ...
最新文章
- js基础到精通全面教程--JS教程(转载)--推荐
- ios网络学习------8 xml格式数据的请求处理 用代码块封装
- 我的手机应用创业的头一年
- 轉Excel的一種簡單方法
- ps法线贴图插件_法线与置换贴图原理讲解以及烘焙制作!
- 如何判断数组所有数都不等于一个数_工程师编程,C语言学习,关于数组方面的一些总结...
- java将csv导入hdfs_把HDFS里的json数据转换成csv格式
- 基于51单片机ds18b20智能温控风扇Proteus仿真
- matlab仿真整流电路设计,基于Matlab GUI的整流电路仿真设计[图]
- 快速排序C语言实现 - 源码详解
- Windows高效文件搜索工具/Everything/Listary/uTools
- Openssl 编译
- parameter缩略语_WB 术语及缩略语表
- 2012CSDN网站八大职位急聘:PHP开发工程师、Ruby开发工程师、UI设计师、网络工程师、问答社区编辑、问答社区运营专员、移动频道编辑、软件研发频道编辑
- 40原一脸嫌弃C96画册_柳岩去相亲,男嘉宾却让郑爽嫌弃摇头,耿直言行有点不礼貌...
- 为什么post请求前先发一个options 请求?
- zynq系列通过XMD进行JTAG调试出错解决方案
- 【汇正财经】什么是市盈率?
- 世界最小量子计算机诞生,离子阱量子技术或成为最终赢家?
- 微信小程序引入插件报错
热门文章
- [VB.NET]文件观察对象FileSystemWatcher
- 做更好的“教练”,用对抗训练增强“知识追踪”
- MMSegmentation:标准统一的语义分割框架
- 字节跳动AI Lab 秋季提前批招聘
- 阿里北大:深度哈希算法最新综述
- 仅信用卡大小,性能比TX2强15倍,英伟达边缘AI计算新品Jetson Xavier NX
- 吴恩达《机器学习训练秘籍》中文版58章节完整开源
- Python系统学习流程图, 教你一步步学习python
- 北大校友的算法被玩出新高度,AI自动化在线抠图
- 论文 | 《深度学习系统的隐私与安全》综述论文,187篇文献总结