トップ(最新) | <前 | 次>

nDiki : ファイル名

ファイル名 - filename

メモ

ext2 (Linux 2.6.15) では標準で最大255文字まで。

関連情報

スポンサード リンク

Related term

2005年3月7日 (月)

日本語ファイル名どんとこい このエントリーを含むはてなブックマーク

私も大人であるから WordExcelPowerPoint のファイルのやりとりがあれば Windows BOX で読み書きしている(参考: Richard Stallman 氏に習う Word 添付ファイルの断り方)。

そしてメールに添付されてくるそれらのファイルは多くの場合、日本語ファイル名だったりする。 Linux 上の Mew 上で適当にASCII文字を使ったファイル名をつけて保存、Samba 経由で Windows BOX で閲覧するというのがいつもの流れだ。 しかし適当に名前をつけているので、すぐどれがどのファイルだがわからなくなる。

Samba で共有しているディレクトリ以下ぐらいは、日本語ファイル名のファイルを作ってもいいことにするかなぁ。

ということで環境設定。

@ LANG

これを機会に一気に UTF-8 化を促進するか。

LANG を ja_JP.eucJP からja_JP.UTF-8 に。 もともと locales では ja_JP.UTF-8 も生成済みだったので特に作業無し。

ターミナルソフトも去年 mlterm に乗り換えているので問題無し。

@ Emacs

 (set-default-coding-systems 'utf-8-unix)

default-file-name-coding-system も utf-8-unix になる。

@ Samba

3.0 系。

 dos charset = CP932
 unix charset = UTF-8 (default)

既に設定済み。

@ ファイラ

さすがに Bash 上で日本語ファイル名を打つのも面倒なので、何かファイルマネージャがあった方がいいな。 できれば Emacs っぽいキーバインディングで。 …… dired でいっか。

@ とりあえず

移行した。 pLaTeXエラーメッセージとか、UTF-8端末だと読めないものもあるので多少の不便はあるものの大きな問題は今のところなさそうだ。

しばらくやってみる。

スポンサード リンク


[ 3月7日全て ]

2005年4月2日 (土)

DAR で差分/増分バックアップ このエントリーを含むはてなブックマーク

普段使っているノート PCpdumpfsバックアップをとっている。 任意のスナップショットから簡単にファイルを復元できるので、バックアップHDDを別に用意できる場合はこれが便利。

@ 問題1

会社で使っている Windows デスクトップは、rsyncWindowsファイルサーバへ同期。 1世代しかバックアップが無い。 少なくとも数世代前のファイルが復元できるようにしておきたい。

@ 問題2

Linux サーバはバックアップ無し! マズイ。 現状、たまに手動で tarball にして保存しているぐらい。

@ DAR

DAR というバックアップコマンドの紹介を見て興味をひかれた。 シンプルながらも使い勝手の良さそう。 Linux でも Windows でも動くというのも嬉しい。

@ DAR を使ってみる

Linux 上で試してみる。

@ テスト用ディレクトリを作成

/tmp の下にテスト用ディレクトリ dar を作成。 その下に home ディレクトリと var ディレクトリを作成する。

 mkdir -p /tmp/dar/home/naney
 mkdir -p /tmp/dar/var/lib/dar
 echo 'abc' > /tmp/dar/home/naney/file1.txt

/tmp/dar/home 以下バックアップ対象として /tmp/dar/var/lib/dar 以下にバックアップファイルを作成してみることにする。

@ フルバックアップ

最初はフルバックアップ:

 dar -c /tmp/dar/var/lib/dar/home-full \
     -y9 \
     -R /tmp/dar \
     home

/tmp/dar/home をフルバックアップした home-full.1.1.dar が /tmp/dar/var/lib/dar にできる。

@ 差分バックアップ(1回目)

ファイルを1つ追加。

 echo 'def' > /tmp/dar/home/naney/file2.txt

ここで差分バックアップをとる:

 dar -c /tmp/dar/var/lib/dar/home-diff-1 \
     -A /tmp/dar/var/lib/dar/home-full \
     -y9 \
     -R /tmp/dar \
     home

home-full.1.dar に対する差分バックアップファイル home-diff-1.1.dar ができる。

@ 差分バックアップ(2回目)および増分バックアップ

もう1つファイルを追加。それから最初にあったファイルを削除してみる。

 echo 'ghi' > /tmp/dar/home/naney/file3.txt
 rm /tmp/dar/home/naney/file1.txt

ここで差分バックアップ(2回目):

 dar -c /tmp/dar/var/lib/dar/home-diff-2 \
     -A /tmp/dar/var/lib/dar/home-full \
     -y9 \
     -R /tmp/dar \
     home

home-full.1.dar に対する差分バックアップファイル home-diff-1.2.dar ができる。

またインクリメンタルバックアップもとってみる dar -c /tmp/dar/var/lib/dar/home-inc-2 \

    -A /tmp/dar/var/lib/dar/home-diff-1 \
    -y9 \
    -R /tmp/dar \
    home

差分バックアップファイル home-diff-1.1.dar に対する差分バックアップファイル home-diff-2.1.dar ができる。

@ フルバックアップからの復元
 dar -x /tmp/dar/var/lib/dar/home-full

を実行。

 home/naney/file1.txt

が復元される。

@ フルバックアップ+差分1回目からの復元
 dar -x /tmp/dar/var/lib/dar/home-full
 dar -x /tmp/dar/var/lib/dar/home-diff-1

を実行。

 home/naney/file1.txt
 home/naney/file2.txt

が復元される。

@ フルバックアップ+差分2回目からの復元
 dar -x /tmp/dar/var/lib/dar/home-full
 dar -x /tmp/dar/var/lib/dar/home-diff-2

を実行。

 home/naney/file2.txt
 home/naney/file3.txt

が復元される。

@ フルバックアップ+増分1回目(=差分1回目)+増分2回目からの復元
 dar -x /tmp/dar/var/lib/dar/home-full
 dar -x /tmp/dar/var/lib/dar/home-diff-1
 dar -x /tmp/dar/var/lib/dar/home-inc-2

を実行。

 home/naney/file2.txt
 home/naney/file3.txt

が復元される。

@ 運用するには

などが必要か。 エラー処理まで含めると結構面倒くさいな。 Perlあたりでまずは簡単なスクリプトを用意するか。


[ 4月2日全て ]

2005年4月10日 (日)

Windows 上での Apache 2.0.53 では PATH_INFOシフト JIS このエントリーを含むはてなブックマーク

WiKickerWindows 上での動作確認の続き。 WiKickerPPM パッケージを作成して ActivePerl 5.8.6.811 上にインストール。 依存するモジュールで、ActivePerl に入っていないものは以下の通り。

既に手元で PPM パッケージ化済みなので、これもインストールしておく。

後は RCS をパスの通っているディレクトリに入れてタイムゾーンを設定。

 TZ=JST-9

CGI プログラムとして実行。 お、表示できた。 書き込みはと。

エラー

予想していたけれど、sendmail に依存していたところ。 sendmail が見つからない場合はメールの送信をスキップするように修正。

これでうまく動くかなと思ったら、日本語名のページを作るとうまく表示できない問題を発見。

@ PATH_INFOシフト JIS で渡される

WiKicker では UTF-8 文字列をURIエスケープして WikiPageURLを生成している。 このURIにアクセスされると WiKicker は、PATH_INFO から WikiName を取り出す。 この文字列がシフト JIS になってしまっている。

Windowsファイル名に使用する charset にあわせて、Apache が変換してしまっているようだ。 調べてみると他の WikiEngine でも同様の問題にあっているという記事が見つかった。

将来の 2.0 系でパッチが取り込まれて修正されるとか、そうでないとか。

現状どうするかなぁ。 WiKicker 側でシフト JIS から UTF-8 に戻すというのもできない事はないけれど、あまりやりたくはないな。 いったんシフト JIS を介しているという時点で、シフト JIS に無い文字の扱いに関する問題をかかえてしまっているし(Apache が)。

対策案:

  • Apache 1.x 系を使う (まだ未確認だが、こちらだと勝手に変換されないらしい)
  • WiKickerPATH_INFO を使わないオプションをつける(URI Query Component は勝手に変換されない)
  • WiKicker 側でシフト JIS から UTF-8 に変換する

[ 4月10日全て ]

2005年4月19日 (火)

最後がピリオド(.)で終わるファイル名をつけられない このエントリーを含むはてなブックマーク

Windows で「最後がピリオド(.)で終わるファイル名」を新規作成する。 最後のピリオド(ドット)が無くなる。

……。

8.3形式の名残なのか? Explorer 上で作成しても、プログラム(Perlスクリプト)から作成しても駄目。

環境は Windows XP Home Edition SP2 + NTFSWindows 2000 + NTFS でも同様。

@ WiKicker

これは WiKicker のテストをしていて気がついた。 WiKicker では「PageNamebase64 を生成し 『/』 を 『.』 で置き換えたもの」をファイル名にしている。 例えば UTF-8 で「タ」は

 44K/

となるので、ファイル名は 「44K.」となる。 で最後の文字が消えてしまうので、デコードするとおかしくなると。

これを機会に Windows 環境でのエンコーディングは RFC3548 「4. Base 64 Encoding with URL and Filename Safe Alphabet」を使うように変更するか。

本当は全てこれに変更したいのだけれど、すでに動いている WikiForum の事を考えると移行は難しいかも。


[ 4月19日全て ]

2005年4月21日 (木)

base64 亜種でのファイル名生成と、Windows このエントリーを含むはてなブックマーク

重要な事を忘れていた。

 perl -MMIME::Base64 -e "print encode_base64('abc')"
 perl -MMIME::Base64 -e "print encode_base64('abI')"

先日のピリオド問題発覚以前に、Windows には大文字小文字を区別しないという問題があるんだった……。

今回のファイル名生成規則の見直しにあわせて、今までの WiKickerデータベースをどう簡単にコンバートするかということをずっと考えていたのだが、そういうレベルではないな。

Windows 版と UNIX 系版は、ファイル名生成規則は別物でいっか。


[ MIME::Base64 ]


[ 4月21日全て ]

2005年5月6日 (金)

Punycodeファイル名用エンコーディングには向かない このエントリーを含むはてなブックマーク

WiKickerWin32ファイル名エンコーディングとして使えないかなと考えていた、 Punycode を試してみる。 実装としては IDNA::Punycode Perl モジュールを使用。

  • 空白は空白のまま
  • / は / のまま
  • アルファベットは大文字小文字を維持したまま

という点で PageNameファイル名にエンコードするのには向いていないことがわかった。 「エンコード後の文字列が短い」「コードが小さい」等の特長があるらしいので、期待していたのでちょっと残念。


[ 5月6日全て ]

2006年1月22日 (日)

amaroKLinux 上の iTunes 音楽データを聞く このエントリーを含むはてなブックマーク

昨日 mt-daapdLinux BOX を iTunes サーバにしたててみた。 しかしサーバにするだけではつまらない。もちろんそのPCでも再生できるようにしておきたい。

xmms で AAC形式の音楽を再生できることはできるのだが、UTF-8ファイル名のファイルの扱いがよろしくない。xmms-shell から操作すれば日本語も扱えるがあまりにも寂しすぎる。

ということでプレーヤーを物色。

@ プレーヤーいろいろ

  • amaroK 1.3.8: KDE 系。見た目も格好良いし、機能としては充分。
  • JuK 2.3: KDE 系。KDE 系ということで見た目は良い。しかし、試したところうまく AAC形式ファイルを指定できなかった。
  • Rhythmbox 0.9.2: GNOME 系。AAC形式 OK。日本語タグもきちんと表示する。再生機能はシンプル。
  • gtkpod 0.99.2: AAC 形式 OK。日本語タグもきちんと表示する。再生機能は xmms まかせ。

@ amaroK スナップショットをビルドする

この中では amaroK が一番気にいった。 しかし残念ながら安定版(1.3.8)ではまだ、AAC形式ファイルの中のタグに対応していないという問題がある。惜しい。

最新のスナップショットでは対応できているとの事なのでビルドしてしまうことにした。

/usr/local/amaroK-svn 以下にインストールすることにする。

 apt-get build-dep amarok
 svn co -N svn://anonsvn.kde.org/home/kde/trunk/extragear/multimedia
 cd multimedia
 svn co svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/kde-common/admin
 svn up amarok
 make -f Makefile.cvs
 ./configure --enable-debug=full --without-akode --prefix=/usr/local/amaroK-svn
 make
 make install

aKode 関連のコードでコンパイルエラーを起こしたので --without-akode でビルド

で、起動

 KDEDIRS=/usr/local/amaroK-svn:/usr \
 PATH=/usr/local/amaroK-svn/bin:$PATH \
 /usr/local/amaroK-svn/bin/amarok

動いた動いた。iTunes 6 for Windows で取り込んだ AAC形式ファイルのタグに含まれている日本語タイトル・アーティスト等もきちんと表示された。 Amazon.co.jp からのカバーの取得もうまくいっている。

自分の環境だとなぜかトレイに入らなくなったが、それ以外は問題なし。 いいね。

@ 追記

トレイに入らないのは amaroK スナップショットのせいではなく、KDE環境が一時的に変になっているせいであった。一旦 KDE 環境を再起動したらきちんとトレイにはいった (2006年2月23日追記)


[ 1月22日全て ]

2006年1月26日 (木)

amaroK のプレイリストを mt-daapd で共有する このエントリーを含むはてなブックマーク

amaroK のコレクション用ディレクトリと mt-daapd での音楽データディレクトリを同一にしている。

この状態でプレイリスト (.m3u) を作成し同じくこのディレクトリに保存すると、mt-daapd で問題なく公開できた。 ファイル名日本語にしておけば、プレイリスト名もきちんと日本語になる。

mt-daapdmt-daapd.playlist による動的なプレイリストも、設定ファイルを UTF-8 で書いておけば日本語のプレイリスト名も問題ないようである。


[ 1月26日全て ]

2006年6月10日 (土)

WiKicker における PageName 最長文字数 このエントリーを含むはてなブックマーク

WiKicker では PageName を エンコードした文字列を URI に埋め込んだり、サーバで保存する際のファイル名にしたりしている。 このため、PageName の最長文字数はそれらの最長文字数に依存しているはずである。

今まで確認を後回しにしていたのだが、新しい機能の追加の際に確認しておく必要があるので調査してみた。

@ WiKicker の実装

WiKicker の実装がらみとして最長を決める要素としては

がある。

@ 各仕様等による制約

  • HTTP では URI の長さには制限なし (RFC2616 3.2.1)
  • Web サーバは Request-URI が長いと 414 Request-URI Too Long を返す (RFC2616 10.4.15)。Apache は LimitRequestLine ディレクティブにより、URI を含むリクエスト行のサイズを制限することができる(配布時には 8190)。
  • Internet Explorer が扱える URL の長さは 2083文字。
  • ext2ファイル名は 255文字まで(増やすこともできる)。
  • 手元の Linux 2.6.15 で試したところ、パス名は 4095文字まで。

@ WiKicker で問題が出ない PageName 最長文字数

上記の中ではファイル名による制約が一番大きい。

WiKicker 内部でファイル名として base64 (の亜種) でエンコードしたものを使っているので、元の文字列はは最長 189バイトまでなければならない。base64 だと3バイトで4文字になるため、189バイトで 252文字となる。

WiKicker ではここでさらにファイル名に ',v'、'-lock' をつける事があるので、実際には元の文字列は最長 186 バイトまでとなる。

PageName が 186 バイトまでだとすると、URL エスケープしたとして558バイト。 WikiEngine のスクリプトの URL や他のパラメータとあわせても、これぐらいなら大丈夫のはずである。

ということで WiKicker では Linux 上だと通常 PageName は 186 バイトが最長と言ってよさそうだ。 日本語の文字はだいたい UTF-8 で3バイトになるので、62 文字までということになる。

そのうち、WiKicker に制約チェックを入れることにしよう。 そのうち。


[ 6月10日全て ]

2006年6月11日 (日)

WiKicker 0.34 リリース - 添付機能のコードを追加 このエントリーを含むはてなブックマーク

2006年6月8日以来、3日ぶりのリリース。

zakwa 氏からの要望により、WikiPage のコピー直後に編集画面に移れる edit now オプションを追加。

また大きな改良として「添付機能」を追加した。 まだ最初のコードなのでエラー処理等が甘いが、それなりに動いているのでコミット。 まだ権限設定がないので、公開サーバでは使用しない方が良い。

添付ファイルのダウンロードを WiKicker 本体の CGI プログラムから行わせるか、独立の CGI プログラムにするか迷ったが、結局別物にした。

  • WiKickerURI 体系の中に、末尾にダウンロードファイル名を持ってこれる形式を作成できなかった。

というのが大きな理由。

@ 設定方法

WiKicker のページにまだ設定方法を書いていないので、こちらへ。

@ attachment CGI プログラムを設置

例えば attachment というファイル名で以下のような Perl CGI プログラムを作り、Web サーバから実行できるように設定を行う。

 #!/usr/bin/perl
 use strict;
 use warniings;
 use WiKicker::WikiCGI::AttachmentController;
 WiKicker::WikiCGI::AttachmentController
   ->new(properties_file => '対応する wiki の設定ファイル名')->run;
@ Wiki のプロパティに設定を追加

次に Wiki の設定ファイルに以下を追加。

 param.NormalPage.attachment: enable
 param.NormalPage.attachment.uri: attachment

param.NormalPage.attachment.uri には上で作った CGI プログラムURI (相対/絶対)を指定する。

これで各ページに attachment (添付)というリンクが表示され、添付機能が使えるようになる。

@ WikiPage での参照の仕方
 # リンクを作成
 [[attachment:ファイル名]]
 [[attachment:ページ名/ファイル名]] <- 別のページの添付ファイル

 # 画像をインライン表示
 [[image:attachment:ファイル名]]
 [[image:attachment:ページ名/ファイル名]]

[ 6月11日全て ]

スポンサード リンク

Related web page

日本語ファイル名
HTTP
http://oku.edu.mie-u.ac.jp/~okumura/php/filename.php
W3CとIETF、日本語ファイル名などが利用できる国際化URIのRFCを発行
標準化団体のW3CとIETFは26日、URI(URL)の国際化方法を定めたRFC 3986とRFC 3987を公表した。すでにドメイン名の国際化方式についてはRFCとして標準化されているが、さらにディレクトリ名や<strong>ファイル名</strong>などの部分についても国際化の方式を定めた。これにより「http://日本語ドメイン名.jp/新着情報/」といったURLの利用が可能となる。 RFC 3986は、URIの仕様を定めたインターネット標準(
http://internet.watch.impress.co.jp/cda/news/2005/01/27/6242.html
はてな windowsであることをすると「ファイル名には次の文字は使えません。 ¥ / : , ; * ? ” < > | 」というメッセージが表示するのですが、うそを言・・
windowsであることをすると「<strong>ファイル名</strong>には次の文字は使えません。 ¥ / : , ; * ? ” &lt; &gt; | 」というメッセージが表示するのですが、うそを言ってますか?
http://hatena.ne.jp/1091683491
Beefway Says - 32bit Windowsのファイル名に関して
ファイル名として使えない文字、文字列
http://beefway.hp.infoseek.co.jp/prog/filename.html
エラーメッセージ : "このファイル名は無効です" または "ファイル名には次の文字は使えません"
http://support.microsoft.com/default.aspx?scid=kb;ja;177506

■よく検索されるキーワード

提案書(65) perl(54) 書き方(49) torrent(49) linux(40) debian(35) アジェンダ(33) 使い方(31) windows(31) x31(30) svn(26) ssh(25) tc-1(25) サンプル(23) usb(22) java(22) ganttproject(21) mp980(20) 画像(20) tortoisesvn(20) インストール(19) 手帳(19) cvs(19) 壁紙(19) a6(18) thinkpad(17) subversion(16) 石垣祐馬(16) ほぼ日手帳(16) 作り方(16) 修理(16) 動画(15) 日本語(15) 充電式カイロ(15) ノート(14) ダイソー(14) 方眼(14) ヨドバシ(14) リフィル(13) 秋葉原(12) ダウンロード(12) apache(12) アジェンダとは(12) iwgp(12) 設定(12) c#(11) mp3(11) ヨドバシカメラ(11) テンプレート(11) 無線lan(11) ubuntu(11) nikon(11) dropbox(11) システム手帳(11) porter(11) クラリチン(10) 筆まめ(10) centos(10) ヤマダ電機(10) window(10) ポメラ(9) フリー(9) リポジトリ(9) イメージテック(9) wiki(9) flex(9) xampp(9) フォーマット(9) terastation(8) flash(8) gmail(8) ドラマ(8) proxy(8) rcs(8) 無料(8) 温度計(8) トランサミン(8) constant(8) truecrypt(8) google(8)

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.187108s / load averages: 0.29, 0.37, 0.33
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)