ファイル名サニタイザー
ファイル名のリストを貼り付けると、どのOS、どのZIPアーカイブ、どのCDNのパスでも生き残るきれいなバージョンが返ってきます。サニタイザーはアクセント付きの文字をプレーンなASCIIに変換し、Windowsで壊れる文字(\ / : * ? " < > |)を取り除き、制御文字を削除し、空白をまとめ、禁止された並びを選んだ置換文字(既定:ハイフン)に置き換えます。S3への一括アップロード前、教材ZIPの出荷、古いNASからの写真のインポートの修正などに便利です。
ファイル名をサニタイズする方法
-
1
ファイル名を貼り付ける
1行に1つ、拡張子の有無は問いません。拡張子はそのまま保持されます。
-
2
置換文字を選ぶ
安全でない並びを置き換える文字を選びます。ハイフン(`-`)が最も安全な既定で、アンダースコア(`_`)はレトロな選択です。
-
3
サニタイザーを実行
各名前はトリムされ、ASCIIに変換され、禁止文字が取り除かれ、空白がまとめられます。何も残らなければ`file`になります。
-
4
リネーム前に確認
出力にはきれいになった名前だけが並ぶので、その場でリネームする前に衝突(2つの入力が同じ出力になる)がないか確認してください。
何が安全でなく、なぜか
ファイルシステムやツールによってブラックリストは異なります。安全なクロスプラットフォームの共通部分は、多くの人が思うより狭いものです。
ファイル名を安全でなくする文字とパターン
| 項目 | 安全でない理由 |
|---|---|
\ / : * ? " < > | |
Windows(NTFS、FAT)で禁止。 |
ASCII制御文字 0x00-0x1F |
ほとんどのファイルシステムで不正。シェルスクリプトを壊す。 |
| 先頭・末尾の空白 | Windowsでひそかに除去される。見えないバグ。 |
| 末尾のドット | Windowsでひそかに除去される。 |
| 予約名 | CON、PRN、AUX、NUL、COM1..9、LPT1..9、すべてWindowsでブロック。 |
| Unicode結合文字 | caféがcaféと同じに見えるが、一部のシステムでは別のファイル名になる原因。 |
| 絵文字・ピクトグラフ字形 | 現代のシステムでは生き残るが、古いCIパイプラインやCDNのパスを壊す。 |
適用される正規化の手順
- ASCII変換。 アクセント付きの文字は基本の文字になります。
caféはcafeに、naïveはnaiveになります。ASCII相当がない文字(CJK、絵文字)は削除されます。 - 禁止文字の置き換え。
\ / : * ? " < > |と制御文字は、選んだ置換文字(既定:ハイフン)になります。 - 空白のまとめ。 連続する空白とタブが1つの置換文字になります。
- 端のトリム。 先頭と末尾のドットと置換文字は削除され、空になった結果は
fileになります。 - 拡張子は保持。 名前の途中のドットは置き換えられないので、
.pdf、.jpg、.tar.gzは生き残ります。削除されるのは末尾のドットだけです。
コツ
- 拡張子を保つ。 名前の途中のドットは保持されるので、
.pdf、.jpg、.tar.gzはそのまま残ります。 - 衝突を確認する。 アクセントは必ず変換されるので、
Résumé.pdfとResume.pdfはどちらもresume.pdfになります。その場でリネームする前に出力を確認してください。 - Webのパス。 URLでは、サニタイズの後にパーセントエンコードもします、あるいはより良くは、URLのスラッグを
[a-z0-9-]の部分集合に保ち、エンコードが一切不要にします。
よくある質問
Web資産とクロスプラットフォームのZIPには、はい、大文字小文字を区別しないWindowsサーバーにアップロードされ、区別するLinuxのCDNからリンクされるときの微妙なバグを避けます。サニタイザーは大文字小文字を変えないので、必要なら自分で小文字にしてください。ローカルの作業では好みです。
空白はすべての現代のOSで合法ですが、URLエンコード(%20)を強制し、多くのシェルパイプラインを壊し、古いツールを混乱させます。ハイフンに置き換えると、バグの一カテゴリーをまるごと取り除けます。
サニタイザーは常にプレーンなASCIIを出力します。アクセント付きの文字は変換され(caféはcafe)、キリル文字はラテン文字の近似に変換され、ASCII相当がない文字(CJK、タイ語、絵文字)は削除されます。対象の環境で元の非ラテン文字の名前が必要なら、別のファイルに控えを残してください。
いいえ、リストはリクエスト中にメモリ内でサニタイズされ、その後どのログにも保存・書き込みされません。
関連ツール
ZIPアーカイブ展開ツール
ZIP、JAR、XPI、DOCX、XLSX、PPTX、ODTの内部をブラウザー内で確認し、アーカイブをサーバーへ送信せずに個別のファイルをダウンロードできます。
CSVからExcelへ変換
CSVをブラウザ内で単一シートのXLSXへ変換します。区切り文字を確認し、IDを保持し、安全な数値だけを数値セルにして内容を送信せず保存できます。
ExcelからCSVへの変換ツール
XLSXまたはXLSのシートをブラウザ内でCSV・TSVに変換。シート、区切り文字、文字コード、非表示データを選べ、ファイルのアップロードは不要です。
字幕ファイル変換
SRTとWebVTTをブラウザ内で相互変換。キューの時刻を検証し、複数行の字幕を保ったままコピーまたはダウンロードできます。
DOCX から ODT への変換ツール
LibreOffice や OpenOffice 向けに Word の DOCX 文書を OpenDocument の ODT 形式に変換します。テキスト・書式・表をオープンな標準のまま保持できます。
Excelシート結合
XLSX、XLS、XLSM、XLSB、ODSを端末内で結合します。シートを分けて保持するか、見出しが一致する行を追加してXLSXをダウンロードできます。
このツールは他の言語でも利用できます
- Pembersih Nama File [ID]
- Công cụ làm sạch tên tệp [VI]
- Sanitizador de Nomes de Arquivo [PT]
- منقّي أسماء الملفات [AR]
- Oczyszczanie nazw plików [PL]
- Dosya Adı Temizleyici [TR]
- 파일명 정리기 [KO]
- เครื่องมือทำความสะอาดชื่อไฟล์ [TH]
- Sanitizador de Nombres de Archivo [ES]
- 文件名清理工具 [ZH]
- Rensa filnamn [SV]
- Assainisseur de noms de fichiers [FR]
- Bestandsnaam-opschoner [NL]
- Dateinamen-Sanitizer [DE]
- Filename Sanitizer [EN]
- Sanificatore di Nome File [IT]
- Очистка имён файлов [RU]