WebDAVでマウントしたlolipopのサーバにMacからrsyncするときはiconvオプションが重要

Pocket

タイトルの通りです。iconvをつけないと、日本語ファイル名で濁点・半濁点が入っている時に文字化けしてアップロードされてしまい、期待通りのURLでアクセスできません。

正解の手順は以下のとおり。

# Homebrewで最新のrsyncをインストール

brew install libiconv rsync

# 一旦ターミナルを閉じて、再度開く。
# rsyncのバージョン3.1以上が入っていることを確認。

rsync --version

# 以下のようにiconvオプションをつけてアップロード実行

rsync --iconv=UTF8-MAC,UTF-8 -auv \
/Users/xxx/.../_site/ \
/Volumes/lolipop-abc.webdav-lolipop.jp/foobar/

# /Volumes/lolipop-abc.webdav-lolipop.jp/foobar/は、
# WebDAVでマウントした、lolipopのサーバ側のアップロード先の
# ディレクトリ(Command+KでFinderでマウント)

lolipopで借りているwebサーバで、ssh接続ができないライトプランだと、FTPかWebDAVしかファイルアップロードの手段がありません。FTPだとrsyncコマンドが使えなくて面倒なので、WebDAVでマウントしてJekyllで生成したスタティックなウェブサイトのデータをアップロードしています。

Jekyllでは日本語ファイル名(サンプル.mdみたいな)のMarkdownファイルを作っても、ローカルではとくに問題なく動いていたので、lolipopの環境にアップロードして運用しようとしたところ、濁点・半濁点を含む日本語名のファイルで問題がおきました(アクセスするとファイルが存在しない、というエラーになる)。

説明の順番が逆になりましたが、上記のようにすると解決します。キモは、

  1. Homebrewで最新版のrsyncをインストールする
  2. rsync時に–iconv=UTF8-MAC,UTF-8オプションを追加する

です。

[tmkm-amazon]B00J3H931I[/tmkm-amazon]