![递归查找文件夹名称并将其分配给变量](https://linux22.com/image/135972/%E9%80%92%E5%BD%92%E6%9F%A5%E6%89%BE%E6%96%87%E4%BB%B6%E5%A4%B9%E5%90%8D%E7%A7%B0%E5%B9%B6%E5%B0%86%E5%85%B6%E5%88%86%E9%85%8D%E7%BB%99%E5%8F%98%E9%87%8F.png)
我在文件夹路径中。有一个名为 的文件夹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/"