我必须使用dos2unix转换整个目录。我不知道该怎么做这件事。
当前回答
一个常见的用例似乎是将提交到Git存储库的所有文件的行结束符标准化:
git ls-files -z | xargs -0 dos2unix
请记住,某些文件(例如*。sln, *.bat)只在Windows操作系统上使用,并且应该保持CRLF结尾:
git ls-files -z '*.sln' '*.bat' | xargs -0 unix2dos
如有必要,使用.gitattributes
其他回答
一个常见的用例似乎是将提交到Git存储库的所有文件的行结束符标准化:
git ls-files -z | xargs -0 dos2unix
请记住,某些文件(例如*。sln, *.bat)只在Windows操作系统上使用,并且应该保持CRLF结尾:
git ls-files -z '*.sln' '*.bat' | xargs -0 unix2dos
如有必要,使用.gitattributes
最好跳过隐藏的文件和文件夹,比如.git。所以,如果你的bash版本是最近的,或者你正在使用zsh,而不是使用find,只需执行:
dos2unix **
注意,对于Bash,这将需要:
shopt -s globstar
....但这是一个非常有用的功能,你应该把它放在你的。bashrc中。
如果你不想跳过隐藏的文件和文件夹,但你仍然不想打乱find(我不会责怪你),你可以提供第二个递归glob参数来只匹配隐藏的条目:
dos2unix ** **/.*
注意,在这两种情况下,glob都将扩展到包含目录,因此您将看到以下警告(可能多次):
我也遇到过同样的问题,感谢这里的帖子,我已经解决了它。我知道我有大约100个文件,我只需要为*.js文件运行它。 找到。-type f -name '*.js' -print0 | xargs -0 dos2unix . xml
谢谢大家的帮助。
我认为最简单的方法是:
dos2unix $(find . -type f)
for FILE in /var/www/html/files/*
do
/usr/bin/dos2unix FILE
done
推荐文章
- 在tmux中保持窗口名称固定
- 如何生成一个核心转储在Linux上的分段错误?
- 在Python中如何在Linux和Windows中使用“/”(目录分隔符)?
- 如何在Apache服务器上自动将HTTP重定向到HTTPS ?
- 如何限制从grep返回的结果的数量?
- 将值从管道读入shell变量
- 以相对于当前目录的路径递归地在Linux CLI中列出文件
- 如何使用xargs复制名称中有空格和引号的文件?
- 在makefile中抑制命令调用的回声?
- 在套接字编程中AF_INET和PF_INET的区别是什么?
- Chmod递归
- 任何方式退出bash脚本,但不退出终端
- 如何查看按实际内存使用情况排序的顶级进程?
- 如何将多行输出连接到一行?
- 使用grep搜索包含点的字符串