如何递归使用 ls 命令和 cd

如何递归使用 ls 命令和 cd

我有一个要求,需要验证嵌套文件夹结构。

例如:我有 3 个文件夹:test1、test2、test3(实际上可以有任意数量的此类文件夹)。现在所有这些文件夹都应包含类似 V1、V2... 的文件夹(“V”后跟数字)。在此文件夹(V1...)下,应该只有两个文件夹名称“dummy1”和“dummy2”。

因此,所有这些检查都应递归进行,直到检查完所有文件夹(如 test 1...test2...)。

答案1

您可以使用寻找命令。 find 会遍历目录结构,对每个文件/目录执行操作。 您可以使用 -type 标志将其限制为目录。

find start_dir -type d -print

为了真正验证所有内容是否都具有结构,我认为您必须编写一个脚本来查看此列表 - 并且我认为您必须使用比 shell 更强大的脚本语言来执行此操作,例如 perl、python、ruby、tcl。

答案2

另一个选择是简单的命令。

做就是了

tree directory/

然后“验证”其输出。

答案3

阳性检测:

find test* -maxdepth 1 -type d -regex ".*/V[0-9]+" 
find test* -mindepth 2 -maxdepth 2 -type d -regex ".*/V[0-9]+/dummy[12]" 

阴性测试:

find test* -maxdepth 1 -type d -not -regex ".*/V[0-9]+" 
find test* -mindepth 2 -maxdepth 2 -type d -not -regex ".*/V[0-9]+/dummy[12]" 

答案4

尝试使用以下命令:

find . -name dummy1 -exec echo "Hello, '{}'" \;
find . -name dummy2 -exec echo "Hello, '{}'" \;

这将提供与 PWD 一起的输出。

相关内容