
屏幕
# 使用Bash列出文件夹中所有子目录并写入数组
在Bash中,要列出一个文件夹中的所有子目录并将它们存储在一个数组中,我们可以使用一些简单而强大的命令。这在构建菜单系统或者进行批量操作时特别有用。在本文中,我们将介绍如何实现这一目标,并提供一些例子来帮助理解。## 列出子目录的基本命令首先,我们使用find命令来列出目标文件夹中的所有子目录。-type d选项告诉find只显示目录,而不包括文件。然后,我们使用-exec选项来执行一个命令,这个命令是echo {},它会输出找到的每个目录的路径。bashdirectories=($(find /path/to/target/folder -type d -exec echo {} %%;))以上命令将目录列表输出到屏幕上,但我们需要将它们存储在一个数组中,以便稍后在脚本中使用。## 将目录存储到数组为了将目录存储到数组中,我们使用mapfile命令(或readarray,它是mapfile的别名)。这个命令从标准输入中读取行,并将它们存储到数组中。因此,我们可以将find命令的输出通过管道传递给mapfile。bashmapfile -t directories < <(find /path/to/target/folder -type d -exec echo {} %%;)</p>现在,directories数组包含了所有子目录的路径。## 在菜单中使用数组有了这个数组,我们可以在脚本中轻松地使用它们,例如创建一个简单的菜单。以下是一个示例脚本,它使用select命令生成一个菜单,用户可以选择要执行的操作。bash#!/bin/bashmapfile -t directories < <(find /path/to/target/folder -type d -exec echo {} %%;)</p>PS3="请选择一个目录: "select directory in "${directories[@]}"; do if [ -n "$directory" ]; then echo "你选择了目录:$directory" # 在这里执行你的操作,例如进入选定的目录 break else echo "无效的选择,请重新选择。" fidone在这个例子中,select命令用于生成一个菜单,其中包含所有找到的子目录。用户可以通过键入相应的数字来选择目录,然后脚本将显示所选目录的路径。## 通过使用Bash命令,我们可以轻松地列出一个文件夹中的所有子目录,并将它们存储在一个数组中。这为构建菜单系统或进行批量操作提供了方便。通过上述示例代码,你可以在自己的脚本中使用这些技术,并根据需要进行定制。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号