
SAVEIFS="$IFS"
myhome=`pwd`
IFS='
'
for str in `find . -type d`
do
cd "$str"
echo "process $str"
cd $myhome
done
IFS="$SAVEIFS"
有时候需要创建带有空格的文件夹,虽然这不是一个好的习惯,但是偶尔会遇到。用的最多的是很多时候需要进入带有空格的文件夹,如"a b"是一个文件夹名。 创建:mkdir "a b" mkdir 'a b' mkdir a\ b 进入:cd "a b" cd 'a b' cd a\ b 由上可见,需要在带有空格的文件夹名前面加上引号(单引号或者双引号),另一种方法是在空格前面加\,\的意思是后面还有字符的意思。 切记,直接输名字是无法 *** 作成功的,如已经创建了文件夹"a b",直接终端输入cd a b会出现没有a文件夹的错误。这个需要更改 shell分隔符为换行在for循环之前修改IFS变量IFS=$'\n' OLDIFS="$IFS"for i in `find . `doecho "$i"doneIFS="$OLDIFS"这样循环就会以换行作为单词分界.你的文件名如果出现换行,那就无能为力。虽然linux 支持文件名包含特殊字符但并不推荐,会导致别的脚本出错误。通常用下划线或短线代替空格。还有一种用find some|while read idoecho "$i"done用read i,每个循环读取一行,等价与用换行作为分隔符。记得采纳欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)