在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'`
所以我想问一下是否有人可以使用一个命令来继续它。
非常感谢!
答案 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/..
的内容,您可以像普通文件夹一样访问它。