bash - 循环遍历带有空格的文件名 Bash 使用变量
问题描述
我正在使用以下脚本来遍历文件夹结构,但是会跳过包含中间空间的文件夹。
for i in $(echo $File_Directory | sed "s/\// /g")
do
if [ -d $i ]
then
echo "$i directory exists."
else
echo "Creating directory $i"
`mkdir $i`
fi
done
感谢您对此的帮助..
解决方案
在我看来,整个循环应该是mkdir -p "$File_Directory"
......
但假设他打算将它们全部放在同一个目录中:
$: File_Directory=a/b/c/d/e/f/g
$: ( IFS=/; for d in $File_Directory; do mkdir -p "$d"; done; )
不过,参数解析确实有点快和松散。
推荐阅读
- linux - Linux CentOS - src/app/app.module.ts:18:42 中的错误 - 错误 TS2307: 找不到模块'@app/modules/
- yii2 - 将 TCPDF 与 Yii2 一起使用时,HeadersAlready 已发送错误
- java - 在以 jar/war 运行的 Spring Boot 应用程序中,JAXB 解组非常慢
- typescript - 如何使用 vue-test-utils 和 Jest 在 Nuxt 中对使用 vuex-module-decorators 语法定义的 Vuex 模块进行单元测试?
- python - 有没有办法通过多个参数拆分字符串而不是获取 TypeError: 'str' object cannot be mapped as an integer?
- nginx - 如何通过网关处理多个后端 api 调用以进行单个 rest 调用
- php - 如何在子目录中使用 Index.php
- spring-data-elasticsearch - 如何获取文档的 _version 的当前值
- controller - 为什么我无法连接到 Ctrl?
- c++ - 如何转换从 C++ 中的函数返回的对象