服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - Linux中实现只显示隐藏文件的方法

Linux中实现只显示隐藏文件的方法

2022-11-03 19:19TIAP刘光录 Linux

在Linux中显示隐藏文件很简单,这样使用 ls 命令即可,然后使用 grep 过滤以 . 开头的文件。

Linux中实现只显示隐藏文件的方法

在Linux中显示隐藏文件很简单,这样使用 ls 命令即可:

 

ls -a

这样你就能看到被隐藏的文件,其文件名称是以一个点 . 开头的。

但是这样的话,你会看到所有文件,包括隐藏的,和正常的(非隐藏)文件,都会被显示出来。

怎样才能只显示隐藏的文件,而不显示正常的文件呢?

目前没有现成的命令可用。不过可以通过另外一种方式,比如使用管道重定向组合ls命令。

只显示隐藏的文件和目录

要只显示隐藏的文件和目录,最简单的方法是使用 ls -a 显示隐藏的文件,然后使用 grep 过滤以 . 开头的文件。

 

ls -a | grep "^\."

^表示以 . 开头。字符 . 需要使用反斜杠 \ 转义,因为它属于特殊字符。所有的内容都需要用引号包括进来。上述命令告诉 grep 只显示以点开头的结果。

我们来看个例子,如下是一个目录下的正常文件:

 

[gliu@fedora work]$ ls -l total 0 -rw-rw-r--. 1 gliu gliu 0 Jun 30 20:28 file1.txt -rw-rw-r--. 1 gliu gliu 0 Jun 30 20:28 file2.txt -rw-rw-r--. 1 gliu gliu 0 Jun 30 20:28 file3.txt -rw-rw-r--. 1 gliu gliu 0 Jun 30 20:28 file4.txt -rw-rw-r--. 1 gliu gliu 0 Jun 30 20:28 file5.txt
drwxrwxr-x. 1 gliu gliu 0 Jun 30 20:32 files

然后我对结果进行过滤,只显示隐藏的文件和目录:

[gliu@fedora work]$ ls -a | grep "^\." .
..
.bash.pdf
.hiddenFiles
.hiddenfile.txt
.tmp.txt

结果中包含了一个点 . ,表示当前目录,还有两个点的 .. 表示父目录。你可以使用 -A 选项来代替 -a ,这样就可以过滤掉这两个目录。我们再试一次:

 

[gliu@fedora work]$ ls -A | grep "^\." .bash.pdf
.hiddenFiles
.hiddenfile.txt
.tmp.txt

这样看起来,好多了,是吧?

这样还有一个小问题,虽然你能看到隐藏的文件,但是你无法区分它们到底是文件,还是目录。

我们还有另外一个方法。

替代方案

以长列表的方式显示隐藏的文件和目录(这样可以区分它们是文件还是目录),可以使用如下方法:

 

ls -ld .*

结果如下:

[gliu@fedora work]$ ls -ld .*
drwxrwxr-x. 1 gliu gliu 188 Jun 30 20:32 .
drwxrwxr-x. 1 gliu gliu 32 May 7 14:27 .. -rw-rw-r--. 1 gliu gliu 0 Jun 30 20:28 .bash.pdf
drwxrwxr-x. 1 gliu gliu 0 Jun 30 20:32 .hiddenFiles -rw-rw-r--. 1 gliu gliu 0 Jun 30 20:29 .hiddenfile.txt -rw-rw-r--. 1 gliu gliu 0 Jun 30 20:28 .tmp.txt

这是什么原理?首先 .* 是一个 shell 通配符,表示所有以 . 开头的文件,基本上你可以这样理解:将上述命令看成是如下语句:

 

ls -ld . .. .bash.pdf .hiddenFiles .hiddenfile.txt .tmp.txt

选项 d 是很重要的,它告诉 ls 命令如果有目录的话只列出目录名称,而不要它的子目录。否则的话,输出结果会包含其子目录中的内容。

如果你不想要列出 . 和 .. 这两个目录,可以使用如下命令:

 

ls -ld .!(|.)

注意到 .!(|.) 了吧,这是一个正则表达式。叹号 ! 表示“非”,竖线 | 表示“或者”。(|.) 表示无或点 .。当你在前面加上一个叹号 ! 则表示不要“无”或 . 。它们结合在一起, .!(|.) 就是一个正则表达式,表示 . 后面跟某个东西(因此可排除单点 .),但也排除后跟一个点 .(因此排除双点 ..)。

 

[gliu@fedora work]$ ls -ld .!(|.) -rw-rw-r--. 1 gliu gliu 0 Jun 30 20:28 .bash.pdf
drwxrwxr-x. 1 gliu gliu 0 Jun 30 20:32 .hiddenFiles -rw-rw-r--. 1 gliu gliu 0 Jun 30 20:29 .hiddenfile.txt -rw-rw-r--. 1 gliu gliu 0 Jun 30 20:28 .tmp.txt

只显示隐藏的文件(而不要隐藏的目录)

只显示隐藏文件而不显示隐藏目录非常容易,使用如下命令:

 

ls -ld .* |grep -v ^d

显示隐藏的文件和目录,然后过滤掉以 d 开头的条目(即目录)。

 

[gliu@fedora work]$ ls -ld .* |grep -v ^d -rw-rw-r--. 1 gliu gliu 0 Jun 30 20:28 .bash.pdf -rw-rw-r--. 1 gliu gliu 0 Jun 30 20:29 .hiddenfile.txt -rw-rw-r--. 1 gliu gliu 0 Jun 30 20:28 .tmp.txt

当然,还有其他的方法,比如使用 find 命令。如果你有别的方法,欢迎讨论。

原文地址:https://mp.weixin.qq.com/s?__biz=MzI0OTQyNjU5Mw==&mid=2247484456&idx=1&sn=fafcb754e51b3347164f5a2f23e10879&chksm=e990e3e6dee76af039eb0e02b9d8b73a394b62d7b0f4fda82faaad71f944136479d59671be36&cur_album_id=1894932981526380552&scene=189#wechat_redirect

延伸 · 阅读

精彩推荐
  • Linux浅谈linux kernel对于浮点运算的支持

    浅谈linux kernel对于浮点运算的支持

    今天小编就为大家分享一篇浅谈linux kernel对于浮点运算的支持,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    kerneler_5032022-09-07
  • LinuxLinux在命令行中使用 XMLStarlet 来解析 XML

    Linux在命令行中使用 XMLStarlet 来解析 XML

    我最喜欢的 XML 实用程序之一是 XMLStarlet,这是一个用于终端的 XML 工具包,借助这个 XML 工具包,你可以验证、解析、编辑、格式化和转换 XML 数据。XMLSt...

    Linux中国11162021-07-29
  • Linux把windows下的字体安装到Linux系统下的方法介绍

    把windows下的字体安装到Linux系统下的方法介绍

    Linux(Fedora/Ubuntu/CentOS)的字体实在不尽如人意,而且在网页及文档显示时很多字无法显示出来,特别多的空白和乱码,其实,我们可以把windows下的字体和自己...

    Linux教程网9302022-03-03
  • Linuxlinux下一个网卡配置多个IP

    linux下一个网卡配置多个IP

    linux下一个网卡如何配置多个IP?linux下边如果没有图形界面了配置网络还真的不是太方便了,呵呵,习惯问题,当然习惯需要改的,最近遇到一个问题需要单...

    Linux教程网5052020-04-25
  • LinuxLinux恢复删除文件的lsof命令详解

    Linux恢复删除文件的lsof命令详解

    Linux系统是服务器最常见的操作系统,当然也面临着非常多的安全事件,当发生删除文件错误的时候,恢复文件就尤为重要了,下面这篇文章主要介绍了L...

    Linux教程网8002021-12-20
  • Linux分享10你可能不曾用过的Linux命令

    分享10你可能不曾用过的Linux命令

    下面可能是你不曾用过后十个Linux的命令。但相当的有用。特分享下,方便需要的朋友 ...

    linux命令大全5062019-11-20
  • LinuxLinux从头学:所有编程语言中的栈操作,底层原理都在这里

    Linux从头学:所有编程语言中的栈操作,底层原理都在这里

    利用栈的后进先出特性,可以很方便的解决一些棘手的问题,以至于 CPU 单独分配了 push 和 pop 这两个命令来专门操作栈,当然了,还有其他一些辅助的栈操...

    IOT物联网小镇10982021-07-29
  • LinuxLinux设置和查看环境变量的方法

    Linux设置和查看环境变量的方法

    linux 查看环境变量与设置环境变量在使用过程中很常见,本文整理了一些常用的与环境变量相关的命令,感兴趣的朋友可以参考下希望对你有所帮助 ...

    Linux教程网7552019-12-09