windows下修改文件时的换行符引起在linux运行不正常的解决

env: /etc/init.d/nginx: No such file or directory

原因:在windows下修改文件的时候换行符出的问题。

windowslinux下的换行符是不同的。一般操作系统上的运行库会自动决定文本文件的换行格式. 如一个程序在windows上运行就生成CR/LF换行格式的文本文件,而在linux上运行就生成LF格式换行的文本文件. 在一个平台上使用另一种换行符的文件文件可能会带来意想不到的问题, 特别是在编辑程序代码时. 有时候代码在编辑器中显示正常, 但在编辑时却会因为换行符问题而出错. 很多文本/代码编辑器带有换行符转换功能, 使用这个功能可以将文本文件中的换行符在不同格式单互换.

在不同平台间使用FTP软件传送文件时, 在ascii文本模式传输模式下, 一些FTP客户端程序会自动对换行格式进行转换. 经过这种传输的文件字节数可能会发生变化. 如果你不想ftp修改原文件, 可以使用bin模式(二进制模式)传输文本.

解决:在linux下用dos2unix filename转换一次之后,成功解决问题。

dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是 0A。DOS格式的文本文件在Linux底下,用较低版本的vi打开时行尾会显示^M,而且很多命令都无法很好的处理这种格式的文件,如果是个shell 脚本,。而Unix格式的文本文件在Windows下用Notepad打开时会拼在一起显示。因此产生了两种格式文件相互转换的需求,对应的将UNIX格 式文本文件转成成DOS格式的是unix2dos命令。
常用参数:

将DOS格式文本文件转换成Unix格式,最简单的用法就是dos2unix直接跟上文件名。

格式:dos2unix file

如果一次转换多个文件,把这些文件名直接跟在dos2unix之后。(注:也可以加上-o参数,也可以不加,效果一样)

格式:dos2unix file1 file2 file3

格式:dos2unix -o file1 file2 file3

上面在转换时,都会直接在原来的文件上修改,如果想把转换的结果保存在别的文件,而源文件不变,则可以使用-n参数。

格式:dos2unix oldfile newfile

如果要保持文件时间戳不变,加上-k参数。所以上面几条命令都是可以加上-k参数来保持文件时间戳的。

格式:dos2unix -k file

格式:dos2unix -k file1 file2 file3

格式:dos2unix -k -o file1 file2 file3

格式:dos2unix -k -n oldfile newfile

注:unix2dos命令的使用方式与dos2unix命令的类似。
cat -v可以看到文件中的非打印字符,而不带-v参数的cat命令不行。
hexdump -C可以看到文件每个字节的十六进制表示。

cat -v可以看到文件中的非打印字符,而不带-v参数的cat命令不行。
hexdump -C可以看到文件每个字节的十六进制表示。

转载自:moon‘s blog

时间: 2024-11-05 13:08:06

windows下修改文件时的换行符引起在linux运行不正常的解决的相关文章

windows下删除文件时提示“操作无法完成 因为文件已在。。。”解决方案

解决方案:利用"资源监视器",如上图: 具体步骤: win+r,输入perfmon打开资源监视器 或者 右键--Windows 7任务栏--启动任务管理器--性能--资源监视器--CPU选项卡--关联的句柄--搜索句柄--(输入)要删除的文件夹名--搜索到与文件夹名句柄相关联的进程(由于此程序进程正在调用文件夹,才造成了对该文件夹删除的失败.)--(右键)该进程--结束进程--弹出警告对话框--确认后即可结束该进程,然后就可以完美删除该文件夹了. 解决方案:利用"资源监视器&

windows下修改apache并发数

还没有尝试 修改apache的最大连接数,方法如下: 步骤一 先修改 /path/apache/conf/httpd.conf文件. # vi httpd.conf 将“#Include conf/extra/httpd-mpm.conf”前面的 “#” 去掉,保存. 步骤二 再修改 /path/apache/conf/extra/httpd-mpm.conf文件. # vi httpd-mpm.conf 找到 这一行 原: StartServers 5 MinSpareServers 5 Ma

【转】使用BeyondCompare比较文件夹下的文件时,相同的文件内容,但显示为不相同

原文网址:http://www.cnblogs.com/huangtailang/p/3925157.html 主要原因是: 两个文件行尾标题不一致而导致的,一个是PC,一个是Unix 解决办法: 随便比较文件夹中的两个文件,点击规则,去掉比较行尾(pc/mac/unix)选项,点击确认,回到文件夹比较界面,刷新一下 参考: http://zhidao.baidu.com/question/586124694.html http://zhidao.baidu.com/question/16896

linux系统下修改文件夹目录权限

linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何修改Linux文件-文件夹权限.以主文件夹下的一个名为cc的文件夹为例. 下面一步一步介绍如何修改权限: 1.打开终端.输入su(没 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何修改Linux文件

Windows下 修改GRUB背景图片(xpm.gz)

Windows下 修改GRUB背景图片(xpm.gz) By Jairkung @2014.05.11 核心提示: 所需软件: 1.Paint Shop Pro 6(图片编辑)http://upan.cc/tools/others/2009/youpan_218.html 2.xnview(格式转换) http://upan.cc/tools/others/2009/youpan_219.html 3.7-Zip(压缩文件)http://upan.cc/tools/others/2009/you

将Windows下的文件同步到Linux下

需求:把Windows下的某些文件自动传送到Linux指定目录下 实现: 1. Windows下安装 WinSCP工具,并把Liunx服务器信息保存 2. 编写脚本,实现双击工具就把Windows下的文件上传到Linux下, ========================== copyFile.txt =====================================START=========== option echo offoption batch onoption confir

linux下修改文件的用户组chgrp和文件所有者chown

1. linux下修改文件用户组 chgrp: change group的简写,修改文件所属的用户组. chgrp users test.log 修改后查看 ls -l -rwxrwx--- 1 work users 0 Jun 8 15:46 test.log 如果要修改该目录下所有文件和目录,使用-R参数. chgrp -R users test 要被改变的group名,必须在 /etc/group 文件中. /etc/group文件记录系统中所有的组名称. 2. linux下修改文件所有者

Windows下修改mysql root用户密码

忘记mysql的root密码是一件让人头疼的问题. 下面理一下Windows7下面重置root密码的方法. 1.打开一个命令行窗口:这儿必须注意,要使用管理员身份打开: 2.关闭mysql服务:net stop mysql 3.运行 mysqld --skip-grant-tables.该命令是让mysql启动的时候跳过授权表,这儿要注意的是网上很多地方都是 mysqld-nt,但新版本已经被mysqld取代了. 4.重开一个命令行窗口(用管理员身份打开), 运行命令: mysql -u roo

linux下修改文件的所有者和所属组chown

owner表示所有人 linux下修改文件的所有者和所属组 chown命令 (注意:需要sudo 变为root来操作chown 才生效)同时所有者或所属组必须存在sudo chown root:root aa -R 递归的更改aa文件夹下所有的文件root:root 表示==>所有者:所属组