首页 > 解决方案 > 循环遍历带有空格的文件名 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

感谢您对此的帮助..

标签: bashshellscripting

解决方案


在我看来,整个循环应该是mkdir -p "$File_Directory"......
但假设他打算将它们全部放在同一个目录中:

$: File_Directory=a/b/c/d/e/f/g
$: ( IFS=/; for d in $File_Directory; do mkdir -p "$d"; done; )

不过,参数解析确实有点快和松散。


推荐阅读