如何只显示隐藏目录,然后单独查找隐藏文件

如何只显示隐藏目录,然后单独查找隐藏文件

我试图列出一个目录中的所有隐藏文件,但不列出其他目录,并且我尝试仅使用 ls 和 grep 来执行此操作。

ls -a | egrep  "^\."

这是我到目前为止所拥有的,但问题是它还列出了隐藏的目录,当我不想要的时候。

然后,我想完全单独地列出隐藏的目录。

答案1

仅列出隐藏文件:

ls -ap | grep -v / | grep "^\."  

注意文件这是不是目录的所有内容。没有归档到“Linux 中的一切都是文件”;)

仅列出隐藏目录:

ls -ap | grep "^\..*/$"  

评论:

  • ls -ap/列出当前目录中的所有内容,包括隐藏的目录,并在目录末尾添加。
  • grep -v /反转 的结果grep /,以便不包含目录。
  • "^\..*/$"匹配以 开头.和结尾的所有内容/
  • 如果您想从第二部分的结果中排除.和目录,您可以使用option 代替for ,或者如果您喜欢使用正则表达式,您可以使用代替。..-A-als"^\.[^.]+/$""^\..*/$"

玩得开心!

答案2

列出当前目录中的隐藏文件和目录,包括 .和 ..:

echo .*

递归列出当前目录及其子目录中的隐藏文件和目录:

find . -name '.*'

如果要将结果保存到文件中,请使用重定向:

find . -name '.*' >output-file.txt

答案3

切换到zsh(如果还没有),然后运行

ls .*(^/)

括号内的部分称为全局限定符,意味着选择除目录之外的所有内容。

如果您只对普通文件感兴趣,因此不仅要排除目录,还要排除其他特殊文件(命名管道等),然后尝试

ls .*(.)

答案4

尝试这个命令:

find -maxdepth 1 -type f -name '.*' | sed 's/^..//'

这将只查找当前目录(-maxdepth 1)中的文件(-type f),以“.”开头,sed 命令会删除每一行中的“./”。

相关内容