如何递归地仅列出终端中的隐藏文件

use*_*154 4 command-line ls

我想做类似的事情

ls -RA .?* >> LSRA.list
Run Code Online (Sandbox Code Playgroud)

但是使用这个命令和我尝试过的其他一些变体,我总是在我所在的目录中获得所有非隐藏文件。

即,如果目录包含文件

.hiddenfile foo
Run Code Online (Sandbox Code Playgroud)

使用上面的命令,我得到了两者的递归列表,而我只想保留以 . (但不是 . 目录本身!)

我检查了这个问题的答案,但我没有找到我的问题的解决方案。

更新:目前找到的最佳选择:

 ls -RA .!(|.)*
Run Code Online (Sandbox Code Playgroud)

 find -path './.*' -name '.*' -empty -printf %P\\n
Run Code Online (Sandbox Code Playgroud)

后者递归地列出所有隐藏目录中的所有隐藏文件(因此,如果隐藏目录包含非隐藏文件,则不会显示该文件)。

进一步更新。bac0n 和 vanadium 的两个答案都有效:我不能同时接受!(第一个递归显示隐藏目录中的非隐藏文件,后一个递归只显示隐藏文件)

van*_*ium 9

要递归地仅列出终端中的隐藏文件,您可以使用该工具find-type f选项:

find ~ -type f -name '.*'
Run Code Online (Sandbox Code Playgroud)

这将在用户的主目录中找到基本名称以点开头的所有文件,即隐藏文件或文件夹。删除-type f以列出隐藏文件和文件夹,或指定type d仅列出隐藏目录。通过替换~为有效路径名来指定任何其他目录。指定.列出当前工作目录及以下的隐藏文件。