我想做类似的事情
ls -RA .?* >> LSRA.list
但是使用此命令和我尝试过的其他一些变体,我总是会在我所在的目录中获得所有非隐藏文件。
即,如果目录包含文件
.hiddenfile foo
使用上面的命令,我得到了两者的递归列表,而我只想获取以 . 开头的文件和目录的递归列表。(但不是 . 目录本身!)
我检查了这个问题的答案,但没有找到解决问题的方法。
更新:迄今为止找到的最佳选择:
ls -RA .!(|.)*
和
find -path './.*' -name '.*' -empty -printf %P\\n
后者递归地列出所有隐藏目录中的所有隐藏文件(因此,如果隐藏目录包含非隐藏文件,则不会显示该文件)。
进一步更新。bac0n 和 vanadium 的两个答案都有效:我不能同时接受!(第一个递归显示隐藏目录中的非隐藏文件,后一个递归仅显示隐藏文件)
要从终端递归地仅列出隐藏文件,您可以使用
find
带有以下-type f
选项的工具:这将在用户的主目录中查找其基本名称以点开头的所有文件,即隐藏文件或文件夹。删除
-type f
以列出隐藏文件和文件夹,或指定type d
仅列出隐藏目录。通过替换~
为有效的路径名来指定任何其他目录。指定.
列出当前工作目录及以下目录中的隐藏文件。可能很难匹配每个极端情况:
这是一个不处理命令参数的函数,不会在没有隐藏文件的目录上抛出错误,在列出的目录上附加 / 并输出到单个列。
请运行以下命令以递归方式仅列出来自任何位置的隐藏项目(位置可以在以下命令上更改)并抑制错误以仅显示预期结果。
#列出隐藏在linux中的每种类型的文件/文件夹/数据/对象...
#在linux中以递归方式仅列出隐藏文件
#在linux中以递归方式仅列出隐藏目录