linux和win的换行符转换

❌ 错误写法:

find . -type f -name "*.sh" -exec dos2unix {} ;
  • 这里的 ; 是 shell 的命令结束符,会被 shell 提前解释掉,导致 find 看不到终止符,于是报错“missing argument to `-exec'”。

✅正确写法(两种):

方法 1:用 \;(对每个文件单独执行一次命令)

find . -type f -name "*.sh" -exec dos2unix {} \;

注意:\; 中的反斜杠 \ 是为了转义分号,让 find 能看到它作为 -exec 的结束标记。

方法 2:用 +(更高效,批量传参)

find . -type f -name "*.sh" -exec dos2unix {} +

 

# 转换 .vim, .txt, .md 等常见文本文件
find . -type f \( -name "*.vim" -o -name "*.txt" -o -name "*.md" -o -name "LICENSE" \) -exec dos2unix {} +
posted @ 2025-12-18 17:03  年华似水゛  阅读(5)  评论(0)    收藏  举报