所以我有一个目录 - 让我们说/ dir /。 在其中我有这些文件夹 - /目录/ fold1 / /目录/ fold2 / /目录/ fold3 /
这些文件夹(fold1,2,3)中的每一个都可能包含一个名为foo的文件夹。我想列出dir中的所有文件夹,里面有一个名为foo的文件夹。
谢谢!
答案 0 :(得分:2)
使用它:
find dir -type d -name foo
所以... dir
是您要搜索的目录。
-type
是您正在寻找的类型: d irectory, f ile或 l 墨水。< / p>
-name
是您要查找的内容的名称,区分大小写。如果您希望它不区分大小写,可以使用-iname
。
答案 1 :(得分:2)
怎么样?
ls -R /dir | grep -i foo
打破我们的命令:
ls -R
=递归列出文件(包括目录
grep -i foo
=将采用上面的命令并过滤不区分大小写以显示'foo'的任何实例。
答案 2 :(得分:2)
ls -ld /dir/*/foo | grep ^d
答案 3 :(得分:1)
我建议:
find /dir -name foo -type d -exec dirname {} \; | xargs ls
但如果任何目录中包含空格,则无效。
答案 4 :(得分:1)
如果要列出第一级只包含名为foo
的子目录的所有目录,可以
for x in /dir/*; do
[ -d $x/foo ] && ls $x
done
[ ... ]
构造是shell内置test
的缩写。 -d $x/foo
测试$x/foo
是否存在且是否为目录。如果是,则执行ls $x
。