パスワードを忘れた? アカウント作成
13953093 journal
日記

gm300の日記: S3で変なdirectory できた。 2

日記 by gm300

upload するときに、AWS S3 でいうところのkey, 普通で思うところのfile 名に./AAAを指定した。
すると、. というディレクトリができて、その下にAAA ができるようだ。
. のフォルダのサイズを調べると22Gで全体は、900G ある。
Unix 系の常識からすると、 . はそのディレクトリ自身を指すもので、., .. は特別扱いされる。
実際は、., .. という名前ではなく、「そのディレクトリ自体、上位のディレクトリを..と呼ぶ」という表現が正しいのだろう。
Unix とは関係無いシステムなら . に特別な効果が無いものもあるかもしれない。
Linux ならCOM というファイルは特別な効果を持たないが、MS-DOS 系なら特別なファイルだ。サイズを見たり、消すことはできない。(だったっけ?)
そういえば、昔fileの名前に/が入っていて混乱したな。フルパスで見ると期待したファイル名になる。しかしディレクトリの掘れ方は期待より深くなっている。

ま、今でもdir ent を直接編集すれば、. でも/でも好きなように使えると思うけど。

ハリポタは、AR機能はついていた。ARを使うと画面でのポインティングではなく、機器をチルト等することで照準するようだ。.. 歩きながら試すのは、迷惑そうだ。

この議論は、gm300 (14617)によって「 ログインユーザだけ」として作成されている。 ログインしてから来てね。
  • > 実際は、., .. という名前ではなく、「そのディレクトリ自体、上位のディレクトリを..と呼ぶ」

    UNIXにおける.や..は、OS側のファイルアクセス時の特殊処理ではなく、ディレクトリエントリ上に
    . : 自分自身へのハードリンク
    .. : 親ディレクトリへのハードリンク
    という実体を持ってますよ。

    それに基づいて . や .. へのアクセスが提供されるので、 「./AAA」も「foo/AAA」も、パス構造とファイルアクセスの流れは同じ。「カレントにある . をたどって、その下のAAA」「カレントにある foo をたどって、その下のAAA」になります。

    UNIX思想的に、「mkdirが、ディレクトリを作るときに、ついでに . と .. を作る」という特殊な処理で、「最初の1回だけの、ディレクトリを作る時に手間をかけて」「何度も処理される、アクセス時の処理を簡略化する」って方向性なんだと理解してます。

    最近のファイルシステムはどうなってるか知らない(気にしてないから調べようと思ったこともない)ですが、
    この. と..の仕様から「あるディレクトリのハードリンク数は、子ディレクトリ数+2になる」(自分自身と、自身の.と、子ディレクトリの..)ことを利用して、「ハードリンク数を調べれば子ディレクトリがあるかどうかわかる」という古典的なTIPSがあるので、
    今時のファイルシステムでも同じ仕様を踏襲してるんじゃないですかね。

  • S3 のファイル名は単なるキーで,検索するときに区切り文字を利用して階層構造が
    あるように見せかけてるだけです。なので mkdir とかの概念はないです。

    区切り文字もたいていは「/」を使うでしょうが,別に「/」でなくてもいいです。
    このあたりは S3 コンソールからアクセスしているとわかりにくく
    API レベルのほうがかえってわかりやすいのかもしれません。

    http://www.ne.jp/asahi/hishidama/home/tech/aws/s3/api.html#h_ListObjec... [www.ne.jp]

typodupeerror

UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア

読み込み中...