前言
最近在给CentOS系统配置环境变量的时候,因操作不慎把/etc/profile文件给玩坏了,尽管勉强能恢复文件,但在执行生效配置命令 source /etc/profile
报错如下:
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: /etc/profile: line 11: syntax error near unexpected token `$'{\r''
'bash: /etc/profile: line 11: `pathmunge () {
比较郁闷明明已经恢复原始配置文件了,依然存在报错,使用 cat -v /etc/profile
命令检查一下发现文件中多了大量的Windows下的换行符^M
。
解决方案:执行dos2unix /etc/profile
将profile文件从Windows格式文件转换为Unix、Linux格式,然后在执行source /etc/profile
使之生效,问题解决 ,这也是这篇文章诞生的原因。
安装
yum -y install dos2unix unix2dos
语法
dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...]
选项
-k:保持输出文件的日期不变
-q:安静模式,不提示任何警告信息
-V:查看版本
-c:转换模式,模式有:ASCII, 7bit, ISO, Mac, 默认是:ASCII
-o:写入到源文件
-n:写入到新文件
实例:
方法一
最简单的用法就是dos2unix
直接跟上文件名:
dos2unix file
如果一次转换多个文件,把这些文件名直接跟在dos2unix
之后。(注:也可以加上-o
参数,也可以不加,效果一样)
dos2unix file1 file2 file3
dos2unix -o file1 file2 file3
上面在转换时,都会直接在原来的文件上修改,如果想把转换的结果保存在别的文件,而源文件不变,则可以使用-n
参数。
dos2unix -n oldfile newfile
如果要保持文件时间戳不变,加上-k
参数。所以上面几条命令都是可以加上-k参数来保持文件时间戳的。
dos2unix -k file
dos2unix -k file1 file2 file3
dos2unix -k -o file1 file2 file3
dos2unix -k -n oldfile newfile
以上是转换单个文件,如果要转换目录或文件夹的话,请看方法二。
方法二
Linux系统本身提供了dos2unix
和unix2dos
这两个命令来实现Windows和Linux系统文件的转换,但是dos2unix
和unix2dos
本身没有提供递归也就是批量修改的方式,这样一来我们就需要借助于xargs
命令了。
xargs
的命令的作用就是将参数列表转换成小块分段传递给其他命令,借助于xargs
,我们可以很简单的实现批量替换;
这里假设我需要替换的文件所在目录为 public/components
目录下。
find public/components/ -name "*" | xargs dos2unix
其中,*
号表示所有文件。
要更改文件格式的后缀为.py
,那么借助于下面的命令就可以轻松的实现批量替换格式:
批量替换为linux文件格式:
sudo find public/components/ -name "*.py" | xargs dos2unix
批量替换为dos文件格式:
sudo find public/components/ -name "*.py" | xargs unix2dos
优点:批量替换,工作量小, 总的来说,方法二借助于管道符和xargs
来实现的批量命令,将方法二修改一下就可以实现很多的批量操作。比如:
1、批量删除整个linux系统中后缀为.tmp
的文件;那么命令可以这么写:
sudo find /home/test -name "*.tmp" | xargs rm -f
2、删除整个linux系统中与apache相关的文件:
sudo find /home/test -name "*apache" | xargs rm -rf
相关推荐
- Ubuntu/Debian 系统安装配置 UFW 简单防火墙
- CentOS 7 安装使用 iptables 防火墙方法介绍
- Linux 服务器配置密钥实现远程免密登录
- CentOS 7 firewalld 防火墙常用命令汇总
- 如何给Redis设置临时或永久密码?
- 在Linux系统中安装配置使用DenyHosts防护工具
文章作者:喵斯基部落
原文地址:https://www.moewah.com/archives/364.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。
感谢分享,还有这个自动获取邮箱的头像功能很亮眼哦
yum -y install dos2unix unix2dos下不下来
有什么提示?@(汗)