• 締切済み

空のディレクトリでdirを行ったとき

Windows のコマンドプロンプトで空のディレクトリで dir を行いました。 ディレクトリは空にも関わらず, <DIR> . <DIR> .. の2個のディレクトリが表示されました。 これは,空のディレクトリでも表示されていないだけであって,存在するものなのでしょうか?

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

ファイルやフォルダーには別名が付けられます。 「別名」は、WindwosのExplorerで作れる「ショートカットファイル」とすこし似ていますが、かなり違います。 「.」と「..」は特殊な別名で、「そこ」「あそこ」のような代名詞みたいな物です。 「.」は、そのフォルダー自身の別名です。 「..」は、そのフォルダーの親フォルダーの別名です。 この2つの別名はフォルダー新規作成で自動的に作られます。 コマンドプロンプトで、デスクトップ上の空フォルダーにいるとして、 C:\Users\xxxxx\Desktop\kara> notepad ..\abc.txt と、メモ帳を起動して保存すると C:\Users\xxxxx\Desktop\abc.txt が出来ます。 C:\Users\xxxxx\Documents\karakara> notepad ..\abc.txt だと、C:\Users\xxxxx\Documents\abc.txt ですね。 コマンドをキーインするときに使うことは少ないと思いますが、プログラム中でファイルのパスを指定するときには使ったりします。 コマンドでの使用例としては、C:\test フォルダー内に、folder1とfolder2が横並びであるとして、それぞれの中にある同名の xyz.txt を fc コマンドで比較する場合、 案1: fc C:\test\folder1\xyz.txt C:\test\folder2\xyz.txt 案2: cd C:\test\folder1 fc xyz.txt ..\folder2\xyz.txt 「..」は使い道がありそうだけど、「.]はどういうときに使うんだ?という疑問はもっともです。この2つはUnixOS由来で、Unixの話から説明しないといけないので、今回は割愛します。

回答No.1

. 自分自身 .. ひとつ前のフォルダへのBreadcrumb(パンくず) ですね。 なので、例えばそこにファイルを1個追加してみてください。 その後 dir . (自分自身と指定) すると、"dir"だけを書いたのと同じ結果が得られる =なぜなら自分自身を指定したから。 逆に親フォルダを指定したい場合 dir .. (親フォルダを指定) で、カレントを .にいたままで、..が参照できます。 この理屈上。。 dir ..\..\ これで、2階層上を参照します。 (親の親と書いたため) (CUIが日本語の場合\は、半角¥円マークになります。) なので「ディレクトリは空にも関わらず」 空なのではなく、自分自身を入れた箱を 親階層にぶら下げている状態を作るのが、 mkdirというコマンドになります ms-dosにサブフォルダが出来たときはじめて この概念が導入されました。 なお、技術的な事を言うと、 "."というのは、ディレクトリ属性を持ったファイルにはなります。 中に、ファイル名とファイルへのファーストエントリが入ってます。 (FATxまたはVFAT系の場合)

関連するQ&A