我必须使用dos2unix转换整个目录。我不知道该怎么做这件事。
当前回答
由于我对dos2unix不太满意,所以我推出了自己的简单实用程序。除了在速度和可预测性方面的一些优势外,语法也更简单:
endlines unix *
如果你想让它进入子目录(跳过隐藏的dirs和非文本文件):
endlines unix -r .
Endlines可以在这里找到https://github.com/mdolidon/endlines
其他回答
一个常见的用例似乎是将提交到Git存储库的所有文件的行结束符标准化:
git ls-files -z | xargs -0 dos2unix
请记住,某些文件(例如*。sln, *.bat)只在Windows操作系统上使用,并且应该保持CRLF结尾:
git ls-files -z '*.sln' '*.bat' | xargs -0 unix2dos
如有必要,使用.gitattributes
for FILE in /var/www/html/files/*
do
/usr/bin/dos2unix FILE
done
如果它是一个大目录,你可能需要考虑运行多个处理器:
find . -type f -print0 | xargs -0 -n 1 -P 4 dos2unix
这将一次传递一个文件,并使用4个处理器。
找到。-type f -print0 | xargs -0 dos2unix . txt
将递归找到当前目录内的所有文件,并调用这些文件dos2unix命令
由于我对dos2unix不太满意,所以我推出了自己的简单实用程序。除了在速度和可预测性方面的一些优势外,语法也更简单:
endlines unix *
如果你想让它进入子目录(跳过隐藏的dirs和非文本文件):
endlines unix -r .
Endlines可以在这里找到https://github.com/mdolidon/endlines