LoginSignup
2
1

More than 5 years have passed since last update.

macで特定ディレクトリ以下の改行コードをLFにする

Last updated at Posted at 2018-01-12

概要

git add をしたら

$ git add .
warning: CRLF will be replaced by LF in public//vendor/hoge.js.
The file will have its original line endings in your working directory.

と言われる。

元CRLFのファイルをgitにコミットするとLinuxにデプロイしたときに
diffが永遠に出続ける謎の呪いにかかって解けなくて詰むことがある。

これを防ぐために事前に改行コードをLFにしてからコミットしましょう。

nkfをインストール

改行コード置換なら、nkfがいいよとみんなが言ってる。
Macにはデフォでnkfが入っていない。
なのでnkfをMacに入れることにする。

$ brew update
$ brew install nkf

特定のディレクトリ以下の改行コードをまるっと置換

./public/vendor配下のファイルを全部LFにする。

$ find ./public/vendor -type f \( -name "*.js" -o -name "*.css" -o -name "*.md" -o -name "*.txt" -o -name "*.json" -o -name "*.scss" -o -name "*.less" -o -name "*.html" -o -name "*.svg" -o -name "*.php" \) | xargs nkf --overwrite -Lu

これで世界に平和が訪れます。

2018/01/15修正
find ./public/vendor -type fだとバイナリファイルも一緒に処理してしまってヤバいことになることが分かったので、拡張子をちゃんと指定してやることにしました。
find ./public/vendor -type fは世界に平和ではなく災いが訪れます。
良い子のみんな、気をつけて。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1