最近工作需要,写了一些shell脚本用来做服务器一键打包更新,
通过for递归遍历文件夹时文件名中含有空格,它会当成两个文件
解决方式:修改分隔IFS
#! /bin/bash
function dfs
{
old_IFS=${IFS}
IFS=$(echo -e '\n')
for file in `ls -A "$1"`
do
if [ -d $1/${file} ]; then
dfs "$1/${file}"
else
echo "$1/${file}"
fi
done
IFS=${old_IFS}
}
作为良好的习惯,改过的东西用完后要改回去
这是我自己写的一个dfs递归遍历,效果和-r差不多