OS Xでのファイル名に無効な文字は何ですか?


22

私はこの情報を見つけるのに苦労しており、試行錯誤は何もないかもしれないと私に言っています。OS X Lion(10.7)のファイル名に無効な文字は何ですか?


1
単一のスラッシュ?単一のバックスラッシュ?単一または二重の期間?

すべてのスラッシュコンボとシングルは動作しているように見えますが、シングルピリオドとダブルピリオドはすでに使用されているため失敗します。それ以上あることを願っています。...:)
ロドニーフォーリー

ASCII NULは使用できません。しばらく考えてみれば、なぜ自分自身を見つけるかもしれません…
ドナルドフェローズ

@Donal ASCII NULは、簡単に「入力」したり、誤って誤って実行したりできるものではありません。
ロドニーフォーリー

1
ロドニー、コンテキストを教えてください。あなたがしようとしていることについて少し理解すれば、これに答えるのに大いに役立ちます...知る限りでは、いくつかの潜在的な問題があります:神に正直な禁じられたキャラクター、ターミナルシェルのパス、およびFinderで適切に表示されない文字。
Shog9

回答:


7

HFS Plusでは、「ユニコード、NULを含む任意の文字。OSAPIはレガシーの理由で一部の文字を制限する場合があります」


3
Techincally(それは2バイト長のパスカル文字列として内部名を表しているので)HFS +ファイルシステムは、すべてのUnicode文字を許可んが、OS Xが提供するAPIの私の知る限りのどれを使用すると、スラッシュで/開いているファイルを作成することができない'/'か、NUL '\0'それらで。
アダムローゼンフィールド

CarbonやCocoaのようなAPI?Terminalはそのような制限下にあると思いますが、launchdなどの他のプログラムによって実行されるスクリプトはどうでしょうか?
トビーレーン

8

OS Xでのファイル名に無効な文字は何ですか?

wiki HFS +

ファイル名 Unicodeで使用できる文字、NULを含む任意の文字。OS APIは、従来の理由で一部の文字を制限する場合があります


Finderでは現在、ファイル名にコロンを入力することはできませんが、バックスラッシュを入力することはできます。ただし、Finderでスラッシュとして表示される文字は、シェルではコロンとして表示され、その逆も同様です。FinderはASCII制御文字も許可しません。


Bashは\000(NUL)を除くすべての制御文字を許可しているようです。次の出力を実行してテストしました。

for i in {1..31} 127 0; do echo touch \\$(bc <<< "obase=8;$i"); done

2

編集済み

ウィキペディアによると、唯一の無効な文字はスラッシュ/ですが、UNIX層にあります。


2
:Mac OS Classicでは禁止されているかもしれませんが、Mac OS Xでは間違いなく禁止されていtouch foo:barます。完全に正常に動作します。
アダムローゼンフィールド

1
回答が更新されました。ダウン票を削除してもかまいません。

5
@Adam::「unixレイヤー」で有効ですが、「/Macレイヤー」(つまり、Finder、ほとんどのファイル関連ダイアログなど)で変換されます:コロンは「HFSパス」でセパレータとして使用されます「スラッシュ」は「POSIXパス」のセパレータとして使用されるため、使用している「レイヤー」に応じて双方向の変換が行われます。
クリスジョンセン

2
では、安全にするためにスラッシュ(/)やコロン(:)はありませんか?
ニコラスミアリ

2
@NicolasMiariはい。Finder.appではコロンを入力できず、コロンを含むファイル名では適切に動作しません。UNIXレイヤーでは、スラッシュを含むファイルを操作することはできません(または、それをコロンに変換します)。そして、他のアプリケーション(Microsoft Wordなど)が、どちらかを詰まらせています。たとえば、ドキュメントをTextEdit.appでファイル名foo/bar.docx(機能する)で保存すると、Microsoft Wordはそれを開くことができなくなります。
コンラッドルドルフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.