【发布时间】:2021-08-26 21:09:41
【问题描述】:
问题
- 我一直在努力编写一个 Bash 命令,该命令能够递归搜索一个目录,然后返回包含 exclusively hidden 的每个子目录的路径(直到某个最大深度)文件和/或隐藏目录。
视觉解释
- 考虑以下文件系统摘录:
+--- Root_Dir
| +--- Dir_A
| | +--- abc.txt
| | +--- 123.txt
| | +--- .hiddenfile
| | +--- .hidden_dir
| | | +--- normal_sub_file_1.txt
| | | +--- .hidden_sub_file_1.txt
| |
| +--- Dir_B
| | +--- abc.txt
| | +--- .hidden_dir
| | | +--- normal_sub_file_2.txt
| | | +--- .hidden_sub_file_2.txt
| |
| +--- Dir_C
| | +--- 123.txt
| | +--- program.c
| | +--- a.out
| | +--- .hiddenfile
| |
| +--- Dir_D
| | +--- .hiddenfile
| | +--- .another_hiddenfile
| |
| +--- Dir_E
| | +--- .hiddenfile
| | +--- .hidden_dir
| | | +--- normal_sub_file_3.txt # This is OK because its within a hidden directory, aka won't be checked
| | | +--- .hidden_sub_file_3.txt
| |
| +--- Dir_F
| | +--- .hidden_dir
| | | +--- normal_sub_file_4.txt
| | | +--- .hidden_sub_file_4.txt
期望的输出
- 我正在寻找的命令将输出
./Root_Dir/Dir_D ./Root_Dir/Dir_E ./Root_Dir/Dir_F-
Dir_D因为它只包含隐藏文件。 -
Dir_E因为它只包含我正在搜索的级别的隐藏文件和隐藏目录。 -
Dir_F因为它只包含我正在搜索的级别的隐藏目录。
-
尝试
- 我已尝试使用
find命令来获得我正在寻找的结果,但我似乎无法弄清楚我需要将输出传输到哪些其他命令或我应该使用哪些其他选项。 - 我认为可行的命令如下所示:
$ find ./Root_Dir -mindepth 2 -maxdepth 2 -type d -name "*." -type -f -name "*." | command to see if these are the only files in that directory
【问题讨论】:
-
什么都不包含的目录呢?解决方案应该返回什么?还是不考虑这种情况?
-
每个目录包含 2 个目录:
.和..,它们隐藏,那么您的搜索将返回整个树。
标签: bash find hidden-files