转自公众号:运维漫谈
http://mp.weixin.qq.com/s?__biz=MzIxMTA2ODE1OQ==&mid=2651143871&idx=1&sn=a90fca21cfcf920c5a0bce5b2c0f8247
在使用Linux的过程中,如何只显示隐藏文件呢?
其实非常简单,只需要用到ls
就可以实现。
让我们来好好学习一下。
ls -a
好多朋友说了,显示隐藏文件,只需要ls -a
就可以了,我们先来执行一下这个命令:
ls -a
我们知道Linux的隐藏文件是.开头,比如我们的截图中有个.java的文件。
我们再来看下直接ls
的效果:
.java的文件没有了。
那么我们怎么只显示隐藏文件或者目录呢?
只显示隐藏文件或者目录
其实也非常简单,需要结合ls -a
和grep
命令,具体流程就是:
-
第一步:先用 ls -a
命令查询所有文件,包括隐藏文件 -
第二步:使用 grep
命令过滤出以.开头的文件或者目录
总结起来命令就是:
ls -a | grep \\\"^\\\\.\\\"
我们先来直接试一下,看下效果,稍后再解释\\”^\\\\.
\\”意思。
我们先ll
一下:
ll
看到两个非隐藏文件和文件夹,其他都是隐藏文件,然后我们执行一下ls -a | grep \\\"^\\\\.\\\"
命令:
ls -a | grep \\\"^\\\\.\\\"
可以很清晰的看到执行完ls -a | grep \\\"^\\\\.\\\"
命令后就只剩隐藏文件了。
下面我们来解释一下\\”^\\\\.
\\”,^代表的是正则表达式,代表以XXX开头,\\\\是转义,所以就是以点开头,过滤出以点开头的文件。
不知道大家有没有注意到执行ls -a | grep \\\"^\\\\.\\\"
的时候:
两个默认的隐藏文件也展示出来了,但是实际意义上这两个不是我们想要看到的,那么我们怎么把这个也过滤呢?
我们可以试一试这个命令:
ls -A | grep \\\"^\\\\.\\\"
这样就实现了真正意义上的只过滤出隐藏文件。
除了过滤这种方法,有没有其他的方法能够实现呢?
ls -ld .*
可以用ls -ld .*
命令,-l代表长信息,-d代表当前文件夹,.*
代表的是以点开头的文件或者文件夹,所以其效果跟ls -a | grep \\\"^\\\\.\\\"
一样:
如果是把.和..都去掉的话,达到ls -A | grep \\\"^\\\\.\\\"
效果,只需要:
ls -ld .!(|.)
这样就能将.和..都去掉。
我们再来解释一下.!(|.)
的意思:
-
!代表非 -
| 代表是或
这样一解释就非常明显了。
总结
ls
有很多比较有用的参数,用对参数对于提高我们工作效率非常有用,希望大家在工作中能够活学活用!
原创文章,作者:网络技术联盟站,如若转载,请注明出处:https://www.sudun.com/ask/34660.html