51
47

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Mac でファイル名に使えない文字

Last updated at Posted at 2013-02-17

Mac でファイル名に使えない文字はたったひとつだけ、 / である。そんなはずはないぞ、と思う人もいるかもしれない。たとえば、 web ページのリンクを保存するとファイル名にスラッシュが入っていることがある:

実は、このファイル名を ls コマンドなどで表示すると http-::… となっていることがわかる。ファイル名に含まれるコロンは Finder からはスラッシュに見えるのである(touch foo:bar.txt; open . などと実行して確かめてみてほしい)。では Finder からファイル名にコロンを入力すればどうなるかというと、そのようなファイル名では保存できないようになっている。

この理由は、 OS X 以前の Mac OS ではコロンがパスの区切り文字として使われていたことによる。古い Mac ではスラッシュに特別な意味がなかったのでファイル名に含めることができたが、 Unix ベースとなった OS X ではスラッシュがパスの区切り文字になったため、ファイル名にスラッシュを使えなくなってしまった。そこで、表示上の互換性を取るために、 OS X では特別な意味がなくなったコロンをスラッシュの代用文字としたのである。

Cocoa や CoreFoundation のメソッド/関数でファイルにデータを書き込む場合、ファイル名にスラッシュを含めないようにすることと、コロンは Finder からスラッシュに見えることに気をつける必要がある。

補足:より正確にいうと、ファイルシステムのレイヤーでは依然コロンがパス区切り文字として使われている。ファイルシステムにおけるコロンは Unix レイヤーではスラッシュに(そしてスラッシュはコロンに)変換される。変換の図式を以下に示す:

Layer       | Path
=====================================================
Finder      | path folder -> to folder -> foo/bar.txt
------------+----------------------------------------
Unix        | /path/to/foo:bar.txt
------------+----------------------------------------
Filesystem  | :path:to:foo/bar.txt

参考にしたページ:When a Colon's a Slash and a Slash's a Colon

51
47
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
51
47

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?