我想编写一个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不起作用。
任何帮助真的很感激!
答案 0 :(得分:1)
您希望为此搜索使用两个glob扩展。试试这个:
ls -al /test/dir1/*/version[23]/*
它将搜索所有/ test / dir1 / *目录,然后查找匹配'version2'或'version3'的子目录。
答案 1 :(得分:0)
您可以在BASH中使用list
功能(glob):
ls -al /test/dir1/*/{version2,version3}/*