免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9089 | 回复: 1
打印 上一主题 下一主题

递归把一个目录包括子目录中的所有文件转换成unix格式 [复制链接]

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-08-10 06:20:00每日论坛发贴之星
日期:2016-08-10 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-09 11:51 |显示全部楼层 |倒序浏览
各位,兄弟最近实现了一个可以递归把一个目录包括子目录中的所有文件转换成unix格式文件的shell script,但是如果一个文件名中间有空格(比如叫"how to do.txt")就会停止工作,我不知道如何解决,希望大侠们帮忙解决一下子,谢谢!
代码如下:

#!/bin/bash

#This script convert all the files within $1 directory to DOS format.

#bug:can't convert files if the filename contains spaces.

#                                -leiyu.


recursive_dos2unix()
{
        for x in $(ls)
        do
                if [ -f "$x" ]
                then
                        chmod a+w ./"$x"
                        dos2unix ./"$x"
                        chmod a-w ./"$x"

                elif [ -L "$x" ]
                then
                        echo "this is a link"
                else
                        cd "$x"

                        if [ "$?" != "0" ]
                        then
                            echo "cd failed, exit now."
                            exit 1
                        fi

                        pwd
                        recursive_dos2unix
                        cd ..
                fi
        done
}

echo "Start convert"
cd $1
recursive_dos2unix
echo "end of convert"


[ 本帖最后由 ytsmtipe 于 2009-6-9 11:55 编辑 ]

论坛徽章:
2
程序设计版块每日发帖之星
日期:2016-08-10 06:20:00每日论坛发贴之星
日期:2016-08-10 06:20:00
2 [报告]
发表于 2009-06-09 13:10 |显示全部楼层

回复 #2 lululau 和mixednuts 的帖子

刚刚试验了一下子,两位提出的方法,好像没有起作用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP