在linux操作中,还有比ls用的更多的吗?但是,除了ls-l以外,你还知ls的哪些高级用法呢?今天介绍一下介绍之前,先说一个tree命令,可以打印下树形结构的目录1,ls-lRls-l大家很熟悉,那这个R是什么作用?意思是递归 ...
在linux操作中,还有比ls用的更多的吗? 但是,除了 ls -l 以外,你还知 ls 的哪些高级用法呢? 今天介绍一下 介绍之前,先说一个tree命令,可以打印下树形结构的目录 ![]() 1,ls -lRls -l大家很熟悉,那这个R是什么作用? 意思是递归处理,将指定目录下的所有文件及子目录一并处理。 2,查询以lts开头的文件ls -l lts* ![]() 3,只列出目录下的子目录我只想看单签目录下的子目录,怎么办? 方法有好几种: 1,ls -F /home/alvin/test_dir | grep /$ ![]() 其中:-F选项表示在每个文件名后附上一个字符以说明改文件的类型。“*”:表示可执行的普通文件;“/”:表示目录;“@”:表示符号链接;“|”:表示FIFOs;“=”:表示套接字。 /$ 其实是一个正则表达式,表示以 / 结尾。grep /$ 表示过滤出以 / 结尾的结果,也就是子目录。 2,ls -p | grep /$ 原理同-F一样 3,ls -l | grep "^d" ![]() 原理是,ls -l时会显示文件属性,以d开头的就是文件夹 所以,grep "^d" 表示过滤出以 d 开头的结果 4,ls -d */ 其中:-d 选项表示将目录象文件一样显示,而不显示其下的文件。 4,按时间排序ls -lt 最新的再最前 ls -lrt 最新的再最后 其中:-t 选项表示以文件修改时间排序,越新的越靠前。-r 选项表示对结果进行反向排序,二者结合的话表示以修改时间排序,越新的越靠后。 5,按大小排序其中:-h 选项表示以可读选项显示,否则文件大小是默认以字节数显示,比如:4873字节,你知道是多少吗?加了 -h 选项系统就帮你换算成以k或者其它单位的结果。 -S 选项表示以文件大小进行排序,文件越大越靠前。想要文件小者靠前的话,加个 -r 选项就行。 6,统计当前目录下的文件数和目录数统计文件数:ls -l | grep "^-" | wc -l 其中:^- 表示以 - 开头,即普通文件,ls -l | grep "^-" 过滤出普通文件,再用 wc -l统计过滤出的普通文件的个数。 当然,这是只统计当前目录下,不会递归统计。像前面介绍的加上R参数即可递归统计了。要活学活用哦 ![]() 统计目录数 所以,统计目录数其实也很简单了呢 ls -l | grep "^d" | wc -l 7,列出所有文件的绝对路径ls | sed "s:^:`pwd`/:" 其中:sed "s:^:``pwd``/:" 表示在行首增加 pwd(即文件所在路径),与文件名组合成绝对路径。 8,列出当前目录下的所有文件(包括隐藏文件)的绝对路径, 对目录不做递归在上一个用法里,对于隐藏文件(即以 . 开头的文件)是不作处理的,如果我们需要对隐藏文件也作处理的话,就需要使用下面这个命令: find $PWD -maxdepth 1 | xargs ls -ld 其中:find $PWD -maxdepth 1 限定了在当前层级(即不递归),再对find结果传递给 ls -ld 作参数,这样就将当前目录下的所有文件补齐了所在路径。 |
请发表评论