Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした