Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux命令:目录中的目录_Linux_Command Line_Directory - Fatal编程技术网

Linux命令:目录中的目录

Linux命令:目录中的目录,linux,command-line,directory,Linux,Command Line,Directory,所以我有一个目录,比如说/dir/。 里面有这些文件夹- /目录/文件夹1/ /目录/文件夹2/ /目录/文件夹3/ 每个文件夹(fold1、2、3)都可能包含一个名为foo的文件夹。我想列出dir中的所有文件夹,其中有一个名为foo的文件夹 谢谢 使用以下命令: find dir -type d -name foo 所以dir是您要搜索的目录 -type它们是您要查找的类型:d目录、file或l墨水 -name是您要查找的内容的名称,区分大小写。如果希望不区分大小写,可以使用-iname。我

所以我有一个目录,比如说/dir/。 里面有这些文件夹- /目录/文件夹1/ /目录/文件夹2/ /目录/文件夹3/

每个文件夹(fold1、2、3)都可能包含一个名为foo的文件夹。我想列出dir中的所有文件夹,其中有一个名为foo的文件夹

谢谢

使用以下命令:

find dir -type d -name foo
所以
dir
是您要搜索的目录

-type
它们是您要查找的类型:d目录、file或l墨水

-name
是您要查找的内容的名称,区分大小写。如果希望不区分大小写,可以使用
-iname

我建议:

find /dir -name foo -type d -exec dirname {} \; | xargs ls
但是,如果任何目录中都有空格,这就不起作用了。

那怎么办

ls -R /dir | grep -i foo
分解我们的命令:
ls-R
=递归地列出文件(包括目录


grep-i foo
=将接受上面的命令并对其进行不区分大小写的筛选,以显示“foo”的任何实例。

如果要在第一级列出仅包含名为
foo
的子目录的所有目录,可以执行以下操作

for x in /dir/*; do
  [ -d $x/foo ] && ls $x
done

[…]
construct是shell内置的
test
-d$x/foo
的缩写,它测试
$x/foo
是否存在并且是一个目录。如果存在,则执行
ls$x

这列出了所有foo文件夹,而不是它们的父文件夹的内容。如何使此命令不打印我没有打印的每个目录您应该能够重定向stderr。类似于:ls-R/dir2>/dev/null | grep-i foo
ls -ld /dir/*/foo | grep ^d