列出多个目录内容及其路径

时间:2014-02-10 21:08:58

标签: linux bash

我想编写一个linux脚本或命令:

查看多个特定目录并列出其内容

例如

/test/dir1/abc/version1/program_name/

/test/dir1/abc/version2/program_name/

/test/dir1/abc/version3/program_name/

/test/dir1/bca/version1/program_name/

/test/dir1/bca/version2/program_name/

/test/dir1/bca/version3/program_name/

/test/dir1/cab/version1/program_name/

/test/dir1/cab/version2/program_name/

/test/dir1/cab/version3/program_name/

我可以做一个

ls -al /test/dir1/*/ 

并查看其内容。但我只想看看它在version2和version3中的含义。

例如

ls -al /test/dir1/*/<version2 or version3>/*

并获得如下列表:

/test/dir1/abc/version2/program_name/

/test/dir1/abc/version3/program_name/

/test/dir1/bca/version2/program_name/

/test/dir1/bca/version3/program_name/

/test/dir1/cab/version2/program_name/

/test/dir1/cab/version3/program_name/

不包括版本1。目录多于version1,version2和version3。这就是为什么只排除版本1不起作用。

任何帮助真的很感激!

2 个答案:

答案 0 :(得分:1)

您希望为此搜索使用两个glob扩展。试试这个:

ls -al /test/dir1/*/version[23]/*

它将搜索所有/ test / dir1 / *目录,然后查找匹配'version2'或'version3'的子目录。

答案 1 :(得分:0)

您可以在BASH中使用list功能(glob):

ls -al /test/dir1/*/{version2,version3}/*