我必须使用dos2unix转换整个目录。我不知道该怎么做这件事。
当前回答
找到。-type f -print0 | xargs -0 dos2unix . txt
将递归找到当前目录内的所有文件,并调用这些文件dos2unix命令
其他回答
找到。-type f -print0 | xargs -0 dos2unix . txt
将递归找到当前目录内的所有文件,并调用这些文件dos2unix命令
对于任何Solaris用户(我使用5.10,可能也适用于更新版本,以及其他unix系统):
Dos2unix不会默认覆盖文件,它只会将更新后的版本打印到stdout,所以你必须指定源和目标,即相同的名称两次:
find . -type f -exec dos2unix {} {} \;
如果没有子目录,也可以取
ls | xargs -I {} dos2unix "{}"
如果它是一个大目录,你可能需要考虑运行多个处理器:
find . -type f -print0 | xargs -0 -n 1 -P 4 dos2unix
这将一次传递一个文件,并使用4个处理器。
我已经在谷歌上搜索过上百万次了,所以我的解决方案是把这个bash函数放到你的环境中。
。bashrc或。profile之类的
dos2unixd() {
find $1 -type f -print0 | xargs -0 dos2unix
}
使用
$ back2unixd ./somepath
这样,您仍然有原来的命令dos2unix,并且很容易记住这个命令dos2unixd。