环境:
- centos7.6
- ubuntu21
一般对ls命令的介绍:
-i: 显示inode号
-a: 显示所有内容
-A: 也是显示所有内容,但不显示 '.' 和 '..'
-d: 仅显示目录
-l: 显示详情
-h: 文件大小以易读方式显示
-F: 添加后缀以区分不同的类型,如: '/' 表示目录,‘*'表示可执行文件等
--time-style: 指定时间输出格式,如: --time-style='+%Y-%m-%d %H:%M:%S',或: --time-style=long-iso
//排序相关
-S: 以文件大小倒叙排序
-t: 以时间倒叙排序
-r: 结合 -S 和 -t 反过来排序
-X: 以后缀名排序
--sort: 指定根据什么排序,如: --sort=t相当于-t, --sort=s相当于-S等
有效的参数为:
- "none"
- "time"
- "size"
- "extension"
- "version"
--time: 使用的时间格式,如: --time=ctime,--time=atime,不同的linux支持的格式不同,比如: ext4文件系统支持创建时间,那么还可以有: --time=birth
jackletter@ubuntu:~$ ls --time=1
ls: invalid argument ‘1’ for ‘--time’
Valid arguments are:
- ‘atime’, ‘access’, ‘use’
- ‘ctime’, ‘status’
- ‘birth’, ‘creation’
Try 'ls --help' for more information.
如果是centos7,那么将只有前两行
1. 简单列出内容:
2. 列出详情
我们发现,上面仅列出名字,太简陋了,所以,我们期望尽可能多列出信息:
其实,
ll
命令是别名:
3. 列出所有文件
上面虽然列出了详情,但有些文件并没有列出,比如:“隐藏文件”:
这下隐藏文件也显示出来了吧!
4. 显示易读的文件大小
上面显示文件或目录的大小为B
,能不能以KB/MB
显示呢?
可以看到,文件大小也易读了。
5. 区分不同的文件类型显示
还有个问题,虽然上面不同的文件使用不同的颜色区分,但看起来还是不能很好区分,怎么办?
这下能区分文件
、目录
还是可执行文件了吧?
- 以’/'结尾的是目录
- 以’*'结尾的是可执行文件
- 其他的为其他各种文件
6. 显示时间易读格式
上面显示中时间不符合我们国人的习惯,我们希望是2022-10-05 14:04:01
格式显示,怎么办?
7. 仅显示文件夹
如果,我们只想看这个目录下的文件,而不是子目录,怎么办呢?
或者,我们只想看文件而不是子目录?
其实这条命令就是将过滤前面输出,只要有’/'的都认为是目录,一般来说是准确的。
这条命令和上面的类似,不过由于 使用-v
参数,做的是反向过滤,所以输出的是非目录。
8. 按大小排列
如果是以大小正序排列呢?
9. 以访问时间列出
使用 -t
如果想从小到大呢?
10. 隐藏列出的 .
和..
我们需要将上面的 a
换成A
总结:
上面列举了常用的选项,我们可以将他们制作几个别名,方便调用:
# 显示inode节点、全部文件(除了'.'和'..')、大小和时间格式化输出,不同的文件类型格式化输出
alias ls-info="ls -iAlhF --time-style='+%Y-%m-%d %H:%M:%S'"
# 按修改时间倒序排列
alias ls-info-t-des="ls -iAlhFt --time-style='+%Y-%m-%d %H:%M:%S'"
# 按修改时间正序排列
alias ls-info-t="ls -iAlhFtr --time-style='+%Y-%m-%d %H:%M:%S'"
# 按文件大小正序排列
alias ls-info-s="ls -iAlhFSr --time-style='+%Y-%m-%d %H:%M:%S'"
# 按文件大小倒序排列
alias ls-info-s-des="ls -iAlhFS --time-style='+%Y-%m-%d %H:%M:%S'"
为了方便永久使用,可将它写在用户的 .bashrc 里:
在不退出登录的情况下使用: source ~/.bashrc
使其生效
附alias:
alias x=“y”: 建立别名
unalias x: 取消别名
alias:查看所有建立号的别名
alias x:查看x的真实命令
附文件时间:
在ext4之前,文件有三种时间:
- atime: access time,即最后读取文件内容的时间
- mtime: modification time,即最后修改文件内容时间
- ctime:change status time,即最后修改文件属性,如权限等的时间。
在ext4后新增了创建时间,crtime
如果,你是在centos7上,那么 stat file1,将会有:
在centos7上不显示,那是因为它用的xfs文件系统,不支持。
如果,你是在 ubuntu21上,那么 stat file1,将会有:
虽然时区显示的不对,但不影响我们这里说的问题。。。