在Linux中显示隐藏文件很简单,只需使用ls命令:ls-a就可以看到名称以点开头的隐藏文件。但是这样,您会看到所有文件,包括隐藏文件和普通(非隐藏)文件,都会显示出来。如何只显示隐藏文件而不显示普通文件?当前没有现成可用的命令。但是你可以使用另一种方式,比如使用管道重定向来组合ls命令。仅显示隐藏文件和目录仅显示隐藏文件和目录的最简单方法是使用ls-a显示隐藏文件,然后使用grep过滤以..ls-a|grep"^\."^表示以.人物。需要用反斜杠\转义,因为它是一个特殊字符。一切都需要用引号引起来。上面的命令告诉grep只显示以点开头的结果。我们来看一个例子,下面是一个目录下的普通文件:[gliu@fedorawork]$ls-ltotal0-rw-rw-r--。1gliugliu0Jun3020:28file1.txt-rw-rw-r--.1gliugliu0Jun3020:28file2.txt-rw-rw-r--。1gliugliu0Jun3020:28file3.txt-rw-rw-r--。1gliugliu0Jun3020:28file4.txt-rw-rw-r--。1gliugliu0Jun3020:28file5.txtdrwxrwxr-x。1gliugliu0Jun3020:32files然后我过滤结果,只显示隐藏的文件和目录:[gliu@fedorawork]$ls-a|grep"^\."....bash.pdf.hiddenFiles.hiddenfile.txt.tmp.txt在结果中包含一个点。,表示当前目录,两个点..表示父目录。您可以使用-A选项而不是-a来过滤掉这两个目录。让我们再试一次:[gliu@fedorawork]$ls-A|grep"^\.".bash.pdf.hiddenFiles.hiddenfile.txt.tmp.txt这看起来更好,不是吗?这种方式还有一个小问题。虽然可以看到隐藏文件,但是无法区分是文件还是目录。我们有另一种方法。另一种显示隐藏文件和目录的长列表(这样你就可以区分它们是文件还是目录),你可以使用以下方法:ls-ld.*结果如下:[gliu@fedorawork]$ls-ld.*drwxrwxr-x。1gliugliu188Jun3020:32.drwxrwxr-x。1gliugliu32May714:27..-rw-rw-r--.1gliugliu0Jun3020:28.bash.pdfdrwxrwxr-x。1gliugliu0Jun3020:32.hiddenFiles-rw-rw-r--。1gliugliu0Jun3020:29.hiddenfile.txt-rw-rw-r--。1gliugliu0Jun3020:28.tmp.txt原理是什么?首先,.*是一个shell通配符,表示所有以.开头的文件。基本上,您可以这样理解:将上述命令视为以下语句:ls-ld。...bash.pdf.hiddenFiles.hiddenfile.txt.tmp.txt选项d很重要,它告诉ls命令如果有目录只列出目录名,而不是它的子目录。否则,输出将包括其子目录的内容。如果你不想列出这两个目录。和..,您可以使用以下命令:ls-ld.!(|.)注意.!(|.),这是一个正则表达式。感叹号!表示“不”,竖线|意思是“或”。(|.)表示无或点..当您放置感叹号时!在前面它意味着没有“无”或。.总之,.!(|.)是一个表示.后跟某物(因此不包括单个点.),但也后跟一个点.(因此不包括双点..)。[gliu@fedora工作]$ls-ld.!(|.)-rw-rw-r--.1gliugliu0Jun3020:28.bash.pdfdrwxrwxr-x。1gliugliu0Jun3020:32.hiddenFiles-rw-rw-r--。1gliugliu0Jun3020:29.hiddenfile.txt-rw-rw-r--。1gliugliu0Jun3020:28.tmp.txt只显示隐藏文件文件(而不是隐藏目录)很容易只显示隐藏文件而不显示隐藏目录,使用如下命令:ls-ld.*|grep-v^d显示隐藏的文件和目录,然后过滤掉以d开头的条目(即目录)。[gliu@fedora工作]$ls-ld.*|grep-v^d-rw-rw-r--。1gliugliu0Jun3020:28.bash.pdf-rw-rw-r--。1gliugliu0Jun3020:29.hiddenfile.txt-rw-rw-r--。1gliugliu0Jun3020:28.tmp.txt当然还有其他方法,比如使用find命令。如果你有其他方法,欢迎讨论。
