当前位置: 首页 > Linux

8个Linux下ls命令高级用法实例

时间:2023-04-06 18:50:29 Linux

8个Linux下ls命令高级用法实例在Linux下,大家一定对ls命令太熟悉了。梁旭相信,只要是Linux工程师,每天都会离不开这条命令。并且每天使用数百次。但是除了ls-l,你还知道ls还有哪些高级用法呢?今天良旭就给大家介绍一下ls命令的8个高级用法。如果我们有这样一个文件夹,我们使用tree命令查看它的目录结构:用法一:列出/home/alvin/test_dir目录下所有文件和目录的详细信息命令:ls-lR/home/alvin/test_dir/结果:[alvin@VM_0_16_centostest_dir]$ls-lR/home/alvin/test_dir//home/alvin/test_dir/:total28-rw-rw-r--1alvinalvin37Nov1809:12atb_aux.c-rw-rw-r--1alvinalvin18年11月8日09:12atb_can.c-rw-rw-r--1alvinalvin11月18日09:12atb_orch.c-rw-rw-r--1alvinalvin18年11月5日09:12atb_ota.cdrwxrwxr-x2alvinalvin409611月18日09:12include-rw-rw-r--1alvinalvin011月18日09:12Makefiledrwxrwxr-x2alvinalvin409611月18日09:12outputdrwxrwxr-x2alvinalvin4096Nov1809:12src/home/alvin/test_dir/include:total0-rw-rw-r--1alvinalvin0Nov1809:12a.h-rw-rw-r--1alvinalvin0Nov1809:12b.h-rw-rw-r--1alvinalvin0Nov1809:12c.h/home/alvin/test_dir/output:total0-rwxrwxr-x1alvinalvin0Nov1809:12app/home/alvin/test_dir/src:total0-rw-rw-r--1alvinalvin0Nov1809:12a.c-rw-rw-r--1alvinalvin0Nov1809:12b.c-rw-rw-r--1alvinalvin0Nov1809:12c.c在这里,你应该熟悉-l选项,它的意思是以列表的形式显示结果。对于-R选项,表示递归处理。将指定目录下的所有文件和子目录一起处理。用法二:列出/home/alvin/test_dir目录下所有以atb开头的文件的详细内容命令:ls-latb*结果:[alvin@VM_0_16_centostest_dir]$ls-latb*-rw-rw-r--1alvinalvin11月18日37日09:12atb_aux.c-rw-rw-r--1alvinalvin11月18日09:12atb_can.c-rw-rw-r--1alvinalvin11月18日09:12atb_orch.c-rw-rw-r--1alvinalvin5Nov1809:12atb_ota.c用法三:只列出目录下的子目录方法一:命令ls-F/home/alvin/test_dir|grep/$结果:[alvin@VM_0_16_centostest_dir]$ls-F/home/alvin/test_dir|grep/$include/output/src/其中:-F选项表示在每个文件名后附加一个字符,说明改变后的文件名类型。“*”:表示可执行的普通文件;“/”:表示目录;“@”:表示符号链接;“|”:表示先进先出;“=”:表示一个套接字。/$其实是以/结尾的正则表达式。grep/$表示过滤掉以/结尾的结果,即子目录。方法二:命令:ls-p/home/alvin/test_dir|grep/$结果:[alvin@VM_0_16_centostest_dir]$ls-p|grep/$include/output/src/其中:-p选项与-F选项类似,也是在每个文件名后附加一个字符来表示文件的类型。方法三:命令:ls-l/home/alvin/test_dir|grep"^d"结果:[alvin@VM_0_16_centostest_dir]$ls-l/home/alvin/test_dir|grep"^d"drwxrwxr-x2alvinalvin4096Nov1809:12includedrwxrwxr-x2alvinalvin4096Nov1809:12outputdrwxrwxr-x2alvinalvin4096Nov1809:12src其中:^d也是一个正则表达式,表示以d开头。grep"^d"的意思是过滤掉d开头的结果,如果ls-l列出的结果第一位是d,就说明该文件是一个目录,这样就可以过滤掉子目录。方法四:命令:ls-d*/Result:[alvin@VM_0_16_centostest_dir]$ls-d*/include/output/src/其中:-d选项表示将目录显示为文件,不显示目录它下的文件。用法4:按时间顺序列出目录下的文件,越新越晚。命令:ls-ltr结果:[alvin@VM_0_16_centostest_dir]$ls-lrttotal28drwxrwxr-x2alvinalvin4096Nov1809:12srcdrwxrwxr-x2alvinalvin4096Nov1809:12output-rw-rw-r--1alvinalvin0Nov1809:12Makefiledrwxrwxr-x2alvinalvin4096Nov1809:12include-rw-rw-r--1alvinalvin5Nov1809:12atb_ota.c-rw-rw-r--1alvinalvin18年11月24日09:12atb_orch.c-rw-rw-r--1alvinalvin18年11月8日09:12atb_can.c-rw-rw-r--1alvinalvin11月18日37日09:12atb_aux.c其中:-t选项表示按文件修改时间排序,越新越早。-r选项表示对结果进行反向排序。如果两者结合起来,就是按照修改时间排序,越新越晚。用法5:按文件大小排序命令:ls-lhS结果:[alvin@VM_0_16_centostest_dir]$ls-lhStotal28Kdrwxrwxr-x2alvinalvin4.0KNov1809:12includedrwxrwxr-x2alvinalvin4.0KNov1809:12outputdrwxrwxr-x2alvinalvin4.0KNov1809:12src-rw-rw-r--1alvinalvin11Nov1809:12atb_aux.c-rw-rw-r--1alvinalvin24Nov1809:12atb_orch.c-rw-rw-r--1alvinalvin18年11月8日09:12atb_can.c-rw-rw-r--1alvinalvin11月18日5日09:12atb_ota.c-rw-rw-r--1alvinalvin0Nov1809:12Makefile其中:-h选项表示将其显示为可读选项,否则默认以字节为单位显示文件大小,例如:4873字节,你知道多少吗是?添加-h选项系统将帮助您将结果转换为k或其他单位。-S选项表示按文件大小排序,文件越大越靠前。如果您希望较小的文件成为第一个,只需添加-r选项。用法六:统计当前目录下文件和目录的个数统计文件个数:命令:ls-l|grep"^-"|wc-l结果:[alvin@VM_0_16_centostest_dir]$ls-l|grep"^-"|wc-l5其中:^-表示以-开头,即普通文件,ls-l|grep"^-"过滤掉普通文件,然后用wc-l统计过滤掉的普通文件个数。统计目录号:命令:ls-l|grep"^d"|wc-l结果:[alvin@VM_0_16_centostest_dir]$ls-l|grep"^d"|wc-l3其中:^d表示以d开头,即目录,ls-l|grep"^d"过滤出目录,然后用wc-l统计过滤出的目录个数。用法七:列出所有文件的绝对路径命令:ls|sed"s:^:`pwd`/:"结果:[alvin@VM_0_16_centostest_dir]$ls|sed"s:^:`pwd`/:"/home/alvin/test_dir/atb_aux.c/home/alvin/test_dir/atb_can.c/home/alvin/test_dir/atb_orch.c/home/alvin/test_dir/atb_ota.c/home/alvin/test_dir/include/home/alvin/test_dir/Makefile/home/alvin/test_dir/output/home/alvin/test_dir/src其中:sed"s:^:`pwd/:"`表示添加pwd``在行首(即文件所在路径),与文件名组合成绝对路径。用法8:列出当前目录下所有文件(包括隐藏文件)的绝对路径,不递归目录。在前面的用法中,不处理隐藏文件(即以.开头的文件)。如果我们需要处理隐藏文件,需要使用如下命令:find$PWD-maxdepth1|xargsls-ld结果:[alvin@VM_0_16_centostest_dir]$find$PWD-maxdepth1|xargsls-lddrwxrwxr-x5alvinalvin4096Nov1817:30/home/alvin/test_dir-rw-rw-r--1alvinalvin37Nov1809:12/home/alvin/test_dir/atb_aux.c-rw-rw-r--1alvinalvin24Nov1809:12/home/alvin/test_dir/atb_can.c-rw-rw-r--1alvinalvin24Nov1809:12/home/alvin/test_dir/atb_orch.c-rw-rw-r--1alvinalvin11月18日09:12/home/alvin/test_dir/atb_ota.cdrwxrwxr-x2alvinalvin409611月18日09:12/home/alvin/test_dir/include-rw-rw-r--1alvinalvin0Nov1809:12/home/alvin/test_dir/Makefiledrwxrwxr-x2alvinalvin4096Nov1809:12/home/alvin/test_dir/outputdrwxrwxr-x2alvinalvin4096Nov1809:12/home/alvin/test_dir/src其中:find$PWD-maxdepth1限制在当前层级(即不递归),然后将find结果作为参数传给ls-ld,这样当前目录中的所有文件都用路径填充。更多精彩内容,关注公众号良旭Linux,在公众号回复1024免费领取5T技术资料,包括:Linux、C/C++、Python、树莓派、嵌入式、Java、人工智能等。公众号回复加群,邀你加入达人如云技术交流群。最后,最近有很多朋友找我要一份Linux学习路线图,所以我结合自己的经验,利用业余时间熬夜一个月,整理了一本电子书。无论你是面试还是自我提升,相信都会对你有所帮助!免费送给大家,只求大家给我点个赞!电子书|LinuxDevelopmentLearningRoadmap也希望有小伙伴可以和我一起把这本电子书做得更完美!获得?希望老铁们来个三连击,让更多人看到这篇文章。推荐阅读:干货|程序员和高级架构师免费发送工件的必备资源|支持搜索的资源网站