递归查找文件夹名称并将其分配给变量

递归查找文件夹名称并将其分配给变量

我在文件夹路径中。有一个名为 的文件夹dir。里面还有一个文件夹dir,但不知道名字。如何找到它并将其分配给变量。

PS:我想在多个文件夹上运行它,所以需要一个像上面一样工作的脚本。

答案1

set -- dir/*/

执行上述操作会将 设为$1在 中找到的第一个目录的路径名dir$2将是第二个的路径名,依此类推。并且$@将是 中所有目录路径名的列表dir

/请注意,末尾的尾随dir/*/很重要。如果没有它,您也可能会获取常规文件的名称。

示例,给出以下情况:

.
`-- dir
    |-- A
    |   `-- file2
    |-- B
    |   `-- file2
    |-- C
    |   `-- file2
    `-- file1
$ set -- dir/*/

$ echo "$1"
dir/A/

$ printf '%s\n' "$@"
dir/A/
dir/B/
dir/C/

$ myfolder="$1"
$ printf 'My folder is "%s"\n' "$myfolder"
My folder is "dir/A/"

相关内容