查找所有包含特定字符的目录并打印出来

查找所有包含特定字符的目录并打印出来

我需要找到名称中包含特定字符的所有目录并将其打印出来。

所以如果我有目录:

abc cde fgh

然后我搜索“c”,应该得到:

abc 
cde

答案1

以下命令执行所需的查询:

find -name "*c*" -type d
  • 从当前目录开始(如果是当前目录则无需指定目录)
  • -name "*c*"- 名称包含字母c
  • -type d- 这是一个目录

您可以在其他目录()上运行该命令/full/path/to/dir

find /full/path/to/dir -name "*c*" -type d

更多信息nixCraft 查找命令

答案2

如果globstar已启用,您可以使用它

for d in **/*c*/; do echo $d; done

第一个**将匹配任意子目录路径。然后*c*/匹配包含 c 字符的文件夹

如果尚未启用,你可以使用以下方法启用它shopt -s globstar

  • 全球星

    • 如果设置,文件名扩展上下文中使用的模式**将匹配所有文件和零个或多个目录和子目录。如果模式后跟/,则仅匹配目录和子目录。

答案3

for dir in `find -name "*c*" -type d -maxdepth 1`; do
      echo $dir
done

相关内容