存在子目录的unix ls目录

时间:2013-08-02 12:53:03

标签: unix ls

在Unix中,如果存在子目录,是否可以仅使用一个命令列出目录?

例如,我想列出目录名称,如果它包含一个名为“division_A”的子目录

/data/data_file/form_100/division_A
/data/data_file/form_101/division_A
/data/data_file/form_102/division_A

期望的结果是

form_100 
form_101 
form_102

我只能使用2个命令行来实现目标。

cd /data/data_files
echo `ls -d */division_A 2> /dev/null | sed 's,/division_A,,g'`

所以我想问一下是否有人可以使用一个命令来继续它。

非常感谢!

2 个答案:

答案 0 :(得分:3)

使用find

find /data/data_file -type d -name division_A -exec sh -c 'basename `dirname {}`' \; 2> /dev/null

答案 1 :(得分:0)

如果你不介意奇怪的..,你可以这样做:

$ ls -d /data/data_file/*/division_A/..

它会输出类似/data/data_file/form_100/division_A/..的内容,您可以像普通文件夹一样访问它。