Linux学习(二)

Linux中ls命令的用法详解

一.目录结构

使用ls命令我们首先要了解Linux下的目录结构,Linux系统是由各种文件和目录构成的,就像Windows系统下文件和文件夹的关系,一级一级的向下包含扩展,例如在根目录下有bin,boot,dev,etc,home等目录,而在这些目录下又包含了其他的文件和目录,这样就形成了以根目录“ / ”为根的树形结构。
另外:每个目录下都有“.” “…”这样的两个隐藏文件,“.”表示本文件,“…”表示父目录。

二.Linux下的文件类型

在Linux下一切皆文件 (everything is file),包括目录也是文件的一种,而这些文件被分为七种类型:
• -:普通文件
• d: 目录文件
• b: 块设备
• c: 字符设备
• l: 符号链接文件
• p: 管道文件pipe
• s: 套接字文件sock

三.Linux中ls命令及其常用参数

ls功能: 列出非目录的文件项,然后是每一个目录中的“可显示”文件(可理解为ls命令将本目录向下展开两级)
ls用法:ls [参数] [目录名]
(如果要显示当前目录的文件可不加目录名)
ls常用参数

  • -a 显示所有文件,包含隐藏文件

  • -A 显示所有文件,包含隐藏文件,但不包含.及…

  • -l 显示为long format(长格式),列出文件的类型、权限、链接数、owner、group、大 小,时间,名字

  • -R

  • -d 不展开目录,只显示目录自身,一般与-l配合使用以显示目录自身的属性信息(只显示当前目录的内容)

  • -1 数字1,成列显示内容 -S 以文件大小排序显示,默认从大到小 -r后,从小到大 -U 按存放顺序排序显示

  • -X 按扩展名的首字母来排序

  • -t 按mtime排序(先显示时间最近的)

  • -ul 按atime排序(先显示时间最近的)

  • -ct 按ctime排序(先显示时间最近的)

补充:关于时间戳
atime 访问时间
mtime 数据修改时间 (写入,修改数据mtime改变,mtime改变ctime必改变)
ctime 元数据修改时间 (修改权限的时候只有ctime改变)
可过“stat 文件路径”查看全部时间戳

扩展: 如何通过ls只显示指定格式的文件?
首先我们要了解什么是文件名通配符?
Shell提供了一套完整的字符串模式匹配规则,或者称之为元字符,当Shell遇到上述字符时,就会把它们当作特殊字符,而不是文件名中的普通字符,这样用户就可以用它们来匹配相应的文件名,我理解这可以称为通配符。
常用通配符:

  • *匹配0或多个任意字符
  • ? 匹配任意1个字符

[ ] 当中括号内为几个确定字符时,表示匹配括号内任意一个字符,当中括号内为一个范围时表示匹配这个范围中的任意一个字符(中括号表示的是一个范围,匹配的是一个字符)。

例:
[ab46e] 表示是a,b,4,6,e中的任意一个字符
[a-z] 表示aAbBcC……z(Linux中的默认编码顺序是一个小写字母一个大写字母即aAbBcC…Z)
[A-Z] 表示AbBcC……Z
[a- Z] 表示所有大小写字母
[^ae] 表示即不是a也不是e的其他任意单一字符
[:lower:] 表示一个小写字母
[:upper:] 表示一个大写字母
[:alpha:] 表示一个大小写字母 等同于[a-Z]
[:digit:] 表示任意一个数字 等同于[0-9]
[:alnum:] 表示任意一个字母或数字 等于[a-Z0-9]或[[:digit:][:alpha:]]
[:blank:]:一个水平空白字符
[:space:]:一个水平或垂直空白字符(文件名不可能包含回车,故此处使用与[:blank:]:效果相同)
[:punct:]: 表示一个符号
通过ls命令和通配符查找指定格式的文件:
格式:ls [参数] [目录名][通配符]

以下是一些例子:
1.查找/usr/share/man 目录下以m开头且以一个数字加x结尾的文件
命令:ls -d /usr/share/man/m[0-9]x*
运行结果:
在这里插入图片描述
解释:-d 只展开一级目录
/usr/share/man/ 目录路径
m*[0-9]x m表示以m开头,[0-9]x表示以数字加x结尾,因为对文件的中间没有加以限制所以用代替中间部分,表示任意个数的任意字符。
2. 查找root下的隐藏文件和目录
命令: ls -d /root/.
运行结果:
*
在这里插入图片描述
解释:-d 只展开一级目录/root 目录路径,因为Linux下以“.”开头的文件是隐藏文件,所以用“.”加上“
”来表示隐藏文件。

3.查找/etc下所有以k开头,以一个小写字母结尾,且中间出现至少一位数字的文件
命令:ls -d /etc/k*[0-9][[:lower:]]
运行结果:
在这里插入图片描述
解释:-d 只展开一级目录 , /etc 目录路径,k表示以k开头,[0-9]表示一个数字,[[:lower:]]表示一个小写字母,因为[:lower:]表示为小写字母,也就是abcdefg…z,所以在[:lower:]外面加上[ ]以表示在这写子母中取任意一个,因为只规定了开头和结尾,对中间只要求至少出现一位数字,所以中间用
[0-9]*来表示。

以上内容转载于:点击此处

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值