小编给大家分享一下Linux怎么用ls命令,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
ls 命令即 list directory contents是我们最为熟悉的Linux命令。它就如车载或者手机中的导航地图,彻底解放了我们的大脑,片刻不能离身。否则我们下楼取个快递,都得绕18道弯才能勉强找回家。
我们在前面的“Linux手册”课程中,大量应用ls这个地图查看器。
1.只列出当前的目录文件
我们先从一个具体的问题出发,如何单单打印出目录文件。
如果使用find命令,不仅简单,而且符合完全语义化的表达:
$ find . -maxdepth 1 -type d | head . ./Templates ./.ssh ./.tldr ./.zoom ./.presage ./Videos ./.racket ./.mplayer ./node_modules
我们甚至可以调用echo
$ echo */ anaconda3/ backup.doom.d/ Calibre Library/ Desktop/ Documents/ Downloads/ dwhelper/ emacs.d.backup2/ Mail/ Music/ News/ node_modules/ org/ Pictures/ Public/ snap/ Templates/ Test/ Videos/
查阅手册,我们会看到-d的选项:
-d, --directory list directories themselves, not their contents
直接运行试试:
$ ls -d . . # 只返回了一个当前目录
改用通配符:
$ ls -d */ anaconda3/ Downloads/ News/ snap/ backup.doom.d/ dwhelper/ node_modules/ Templates/ 'Calibre Library/' emacs.d.backup2/ org/ Test/ Desktop/ Mail/ Pictures/ Videos/ Documents/ Music/ Public/
如果将d去掉呢?
实际的执行是将扩展的通配符的子目录全部都列了出来。
2.只列出当前的文件
那么如何单单列出来当前的文件呢?最简单的方法还是 find 命令的语义化查询:
$ find . -maxdepth 1 -type f -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.sh node_modules/ backup.doom.d/ org/ backup.gnus.el package-lock.json 'Calibre Library'/ Pictures/ Desktop/ Public/ Documents/ RMAIL Downloads/ '*scratch*' dwhelper/ snap/ emacs.d.backup2/ start.sh* linux-tutorial-2.org Templates/ linux-tutorial.org Test/ Mail/ Videos/ '#*message*-20191127-125216#' zero-config.el Music/
于是我们考虑使用组合命令:
$ ls -F |grep .*[^/]$ |nl 1 backup.gnus.el 2 linux-tutorial-2.org 3 linux-tutorial.org 4 #*message*-20191127-125216# 5 package-lock.json 6 RMAIL 7 *scratch* 8 start.sh* 9 zero-config.el
或者:
$ ls -l |grep ^- |nl 1 -rw-rw-r-- 1 gaowei gaowei 6042 Feb 4 21:23 backup.gnus.el 2 -rw-rw-r-- 2 gaowei gaowei 892 May 26 08:34 linux-tutorial-2.org 3 -rw-rw-r-- 2 gaowei gaowei 892 May 26 08:34 linux-tutorial.org 4 -rw-rw-r-- 1 gaowei gaowei 139 Nov 27 2019 #*message*-20191127-125216# 5 -rw-rw-r-- 1 gaowei gaowei 313 Dec 10 2019 package-lock.json 6 -rw-rw-r-- 1 gaowei gaowei 74109 Mar 17 14:27 RMAIL 7 -rw-rw-r-- 1 gaowei gaowei 497 Dec 5 2019 *scratch* 8 -rwxr-xr-x 1 gaowei gaowei 1793 May 7 06:20 start.sh 9 -rw-rw-r-- 1 gaowei gaowei 1058 Mar 30 17:10 zero-config.el
至此我们可以得出结论,ls并没有直接列出全部文件的方案。
3.列出指定类型文件
虽然没有列出全部文件的方法,然而我们却可以打印指定suffix的文件:
$ ls *.org # org 文件 linux-tutorial-2.org linux-tutorial.org $ ls *.sh # shell文件 start.sh
而且可以讲二者组合:
$ ls *.{org,sh} linux-tutorial-2.org linux-tutorial.org start.sh
4.无处不在的排序
排序无处不在,两个小学生考试也要排排名次。
我们首先想到的是sort命令。
$ ls -lh | sort -k 5 -h |head total 320K -rw-rw-r-- 1 gaowei gaowei 139 Nov 27 2019 #*message*-20191127-125216# -rw-rw-r-- 1 gaowei gaowei 313 Dec 10 2019 package-lock.json -rw-rw-r-- 1 gaowei gaowei 497 Dec 5 2019 *scratch* -rw-rw-r-- 2 gaowei gaowei 892 May 26 08:34 linux-tutorial-2.org -rw-rw-r-- 2 gaowei gaowei 892 May 26 08:34 linux-tutorial.org -rw-rw-r-- 1 gaowei gaowei 1.1K Mar 30 17:10 zero-config.el -rwxr-xr-x 1 gaowei gaowei 1.8K May 7 06:20 start.sh drwx------ 5 gaowei gaowei 4.0K Feb 4 21:32 Mail drwxrwxr-x 10 gaowei gaowei 4.0K Mar 19 17:46 emacs.d.backup2
颇为惊喜的是,ls 贴心的准备了 -S 选项,并且,更为贴心的是输出的结果是倒序排列。
$ ls -lhS |head total 320K drwxr-xr-x 13 gaowei gaowei 100K Jun 22 15:02 Downloads -rw-rw-r-- 1 gaowei gaowei 73K Mar 17 14:27 RMAIL drwxr-xr-x 8 gaowei gaowei 20K Jun 23 20:01 Videos drwxr-xr-x 3 gaowei gaowei 12K Apr 28 04:50 Desktop drwxr-xr-x 7 gaowei gaowei 12K Jun 20 21:15 Pictures -rw-rw-r-- 1 gaowei gaowei 6.0K Feb 4 21:23 backup.gnus.el drwxrwxr-x 26 gaowei gaowei 4.0K Jun 16 09:02 anaconda3 drwxrwxr-x 2 gaowei gaowei 4.0K Jan 27 13:11 backup.doom.d drwxrwxr-x 6 gaowei gaowei 4.0K Feb 21 16:17 Calibre Library
-S 是长选项--sort的短写形式,除了按文件大小排序,也可以按照时间排序等
$ ls -lh --sort=time |head #简写为 ls -ht total 320K drwxr-xr-x 8 gaowei gaowei 20K Jun 23 20:01 Videos drwxr-xr-x 13 gaowei gaowei 100K Jun 22 15:02 Downloads drwxr-xr-x 7 gaowei gaowei 12K Jun 20 21:15 Pictures drwxrwxr-x 26 gaowei gaowei 4.0K Jun 16 09:02 anaconda3 drwxr-xr-x 4 gaowei gaowei 4.0K Jun 15 18:01 snap drwxr-xr-x 15 gaowei gaowei 4.0K Jun 2 10:53 Documents drwxrwxr-x 2 gaowei gaowei 4.0K May 26 10:50 Test -rw-rw-r-- 2 gaowei gaowei 892 May 26 08:34 linux-tutorial-2.org -rw-rw-r-- 2 gaowei gaowei 892 May 26 08:34 linux-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
以上是“Linux怎么用ls命令”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。