时间:2021-05-02
ls 命令即 list directory contents是我们最为熟悉的Linux命令。它就如车载或者手机中的导航地图,彻底解放了我们的大脑,片刻不能离身。否则我们下楼取个快递,都得绕18道弯才能勉强找回家。
我们在前面的“Linux手册”课程中,大量应用ls这个地图查看器。
1.只列出当前的目录文件
我们先从一个具体的问题出发,如何单单打印出目录文件。
如果使用find命令,不仅简单,而且符合完全语义化的表达:
$find.-maxdepth1-typed|head
.
./Templates
./.ssh
./.tldr
./.zoom
./.presage
./Videos
./.racket
./.mplayer
./node_modules
我们甚至可以调用echo
$echo*/
anaconda3/backup.doom.d/CalibreLibrary/Desktop/Documents/Downloads/dwhelper/emacs.d.backup2/Mail/Music/News/node_modules/org/Pictures/Public/snap/Templates/Test/Videos/
查阅手册,我们会看到-d的选项:
-d,--directory
listdirectoriesthemselves,nottheircontents
直接运行试试:
$ls-d.
.#只返回了一个当前目录
改用通配符:
$ls-d*/
anaconda3/Downloads/News/snap/
backup.doom.d/dwhelper/node_modules/Templates/
'CalibreLibrary/'emacs.d.backup2/org/Test/
Desktop/Mail/Pictures/Videos/
Documents/Music/Public/
如果将d去掉呢?
实际的执行是将扩展的通配符的子目录全部都列了出来。
2.只列出当前的文件
那么如何单单列出来当前的文件呢?最简单的方法还是 find 命令的语义化查询:
$find.-maxdepth1-typef-iname"[^.]*"|nl
1./#*message*-20191127-125216#
2./package-lock.json
3./start.sh
4./backup.gnus.el
5./zero-config.el
6./RMAIL
7./linux-tutorial.org
8./linux-tutorial-2.org
9./*scratch*
我们知道ls命令有-F(filter)选项,将所有的文件归类:
$ls-F
anaconda3/News/
Anaconda3-2020.02-Linux-x86_64.shnode_modules/
backup.doom.d/org/
backup.gnus.elpackage-lock.json
'CalibreLibrary'/Pictures/
Desktop/Public/
Documents/RMAIL
Downloads/'*scratch*'
dwhelper/snap/
emacs.d.backup2/start.sh*
linux-tutorial-2.orgTemplates/
linux-tutorial.orgTest/
Mail/Videos/
'#*message*-20191127-125216#'zero-config.el
Music/
于是我们考虑使用组合命令:
$ls-F|grep.*[^/]$|nl
1backup.gnus.el
2linux-tutorial-2.org
3linux-tutorial.org
4#*message*-20191127-125216#
5package-lock.json
6RMAIL
7*scratch*
8start.sh*
9zero-config.el
或者:
$ls-l|grep^-|nl
1-rw-rw-r--1gaoweigaowei6042Feb421:23backup.gnus.el
2-rw-rw-r--2gaoweigaowei892May2608:34linux-tutorial-2.org
3-rw-rw-r--2gaoweigaowei892May2608:34linux-tutorial.org
4-rw-rw-r--1gaoweigaowei139Nov272019#*message*-20191127-125216#
5-rw-rw-r--1gaoweigaowei313Dec102019package-lock.json
6-rw-rw-r--1gaoweigaowei74109Mar1714:27RMAIL
7-rw-rw-r--1gaoweigaowei497Dec52019*scratch*
8-rwxr-xr-x1gaoweigaowei1793May706:20start.sh
9-rw-rw-r--1gaoweigaowei1058Mar3017:10zero-config.el
至此我们可以得出结论,ls并没有直接列出全部文件的方案。
3.列出指定类型文件
虽然没有列出全部文件的方法,然而我们却可以打印指定suffix的文件:
$ls*.org#org文件
linux-tutorial-2.orglinux-tutorial.org
$ls*.sh#shell文件
start.sh
而且可以讲二者组合:
$ls*.{org,sh}
linux-tutorial-2.orglinux-tutorial.orgstart.sh
4.无处不在的排序
排序无处不在,两个小学生考试也要排排名次。
我们首先想到的是sort命令。
$ls-lh|sort-k5-h|head
total320K
-rw-rw-r--1gaoweigaowei139Nov272019#*message*-20191127-125216#
-rw-rw-r--1gaoweigaowei313Dec102019package-lock.json
-rw-rw-r--1gaoweigaowei497Dec52019*scratch*
-rw-rw-r--2gaoweigaowei892May2608:34linux-tutorial-2.org
-rw-rw-r--2gaoweigaowei892May2608:34linux-tutorial.org
-rw-rw-r--1gaoweigaowei1.1KMar3017:10zero-config.el
-rwxr-xr-x1gaoweigaowei1.8KMay706:20start.sh
drwx------5gaoweigaowei4.0KFeb421:32Mail
drwxrwxr-x10gaoweigaowei4.0KMar1917:46emacs.d.backup2
颇为惊喜的是,ls 贴心的准备了 -S 选项,并且,更为贴心的是输出的结果是倒序排列。
$ls-lhS|head
total320K
drwxr-xr-x13gaoweigaowei100KJun2215:02Downloads
-rw-rw-r--1gaoweigaowei73KMar1714:27RMAIL
drwxr-xr-x8gaoweigaowei20KJun2320:01Videos
drwxr-xr-x3gaoweigaowei12KApr2804:50Desktop
drwxr-xr-x7gaoweigaowei12KJun2021:15Pictures
-rw-rw-r--1gaoweigaowei6.0KFeb421:23backup.gnus.el
drwxrwxr-x26gaoweigaowei4.0KJun1609:02anaconda3
drwxrwxr-x2gaoweigaowei4.0KJan2713:11backup.doom.d
drwxrwxr-x6gaoweigaowei4.0KFeb2116:17CalibreLibrary
-S 是长选项--sort的短写形式,除了按文件大小排序,也可以按照时间排序等
$ls-lh--sort=time|head#简写为ls-ht
total320K
drwxr-xr-x8gaoweigaowei20KJun2320:01Videos
drwxr-xr-x13gaoweigaowei100KJun2215:02Downloads
drwxr-xr-x7gaoweigaowei12KJun2021:15Pictures
drwxrwxr-x26gaoweigaowei4.0KJun1609:02anaconda3
drwxr-xr-x4gaoweigaowei4.0KJun1518:01snap
drwxr-xr-x15gaoweigaowei4.0KJun210:53Documents
drwxrwxr-x2gaoweigaowei4.0KMay2610:50Test
-rw-rw-r--2gaoweigaowei892May2608:34linux-tutorial-2.org
-rw-rw-r--2gaoweigaowei892May2608:34linux-tutorial.org
5.极简模式
有时候,我们阅读-l选项下的结果,眼花缭乱,头晕目眩。此时可以尝试极简模式:
$ls-sS
绝大部分时间,我们更关注的是文件的大小,-s, --size正提供这样的服务。
6.收尾总结
总结上述的方法:
#1.只列出目录
ls-d*/
#2.只列出文件
ls*.{txt,pdf,org}
#3.文件大小排序
ls-lhS
#4.时间戳排序
ls-lht
#5.极简模式
ls-Ss
以上本文收尾,盼对大家有点滴帮助。
原文地址:https://www.toutiao.com/i6908524368884695565/
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Linux中一个基本命令是ls。没有这个命令,我们会在浏览目录条目时会遇到困难。这个命令必须被每个学习Linux的人知道。ls是什么ls命令用于列出文件和目录。
ls命令是Linux系统中最被频繁使用的命令之一,我相信ls命令一定是你进入一台Linux系统的电脑打开命令提示符后第一个使用的命令。我们每天都在频繁地使用ls
1.简介ls命令用来显示目录内容,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。2.命令格式?1ls[OPTI
平板电脑。 微软Surface3 这款平板是微软针对移动办公所推出的。外观方面,该平板的设计中规中矩,简约但却不简单,适合各类人群使用。核心方面,该手机采用
在Linux系统中,许多命令都提供了选项,使用不同的选项就会得到不通的执行结果例如:ls命令,ls命令提供了多个选项:-l、-a、-A、-h、-i等等,每个选项