pwd

「pwd」は単純です。print working directory(現在の作業ディレクトリをプリントせ よ)の略で、現在どのディレクトリにいるか教えてくれます。

普通、ログインしたら自分のホームディレクトリと呼ばれるディレクトリに います。仮に、私のホームディレクトリが

% /home/teacher/susaki

とすると、ログイン直後に「pwd」を打ち込んでEnterキーを押すと、

% pwd
/home/teacher/susaki

と表示されます。これだけのことです。これだけのことですが、作業ディレクト リを変更したり、またファイルを別のディレクトリに移動したり、逆に別のディ レクトリのファイルを移動させる時に必ず使います。 とても大事なコマンドですので忘れないでください。

cd

次に「cd」に移ります。まず、「ls」を使って、現在いるディレクトリに どのようなファイルまたはディレクトリ が含まれているか調べましょう。「ls -F」を打ち込んでEnterを押すと、

% ls -F
document1.txt  image1.jpg  program/
document2.txt  image2.jpg  public_html/
document3.txt  image3.jpg  

このような結果が表示されたと仮定します。ここで「program」と「public_html」は、 その終わりに「/」がついていることから、ディレクトリを表します。それ以外はファ イルです。ここで、「public_html」に移動しましょう。この時に「cd」を使います。

% cd public_html

のように 「cd」の後に移動したいディレクトリを指定します。この後で、 「pwd」を打ち込むと、

% pwd
/home/teacher/susaki/public_html

というように、「public_html」の中にいることがわかります。このように

% cd  ディレクトリ名

のように実行させることで、作業ディレクトリを変更することができます。

今度は、「public_html」の中にいる状態から「program」というディレクトリに移動し たいとします。この場合、単純に「cd program」ではだめです。なぜなら、これだと 「今いるディレクトリの中にある program というディレクトリに移動せよ」という命 令になりますが、実際には「program」は「public_html」の中にはありません。 「public_html」と「program」の構造上の関係は以下の通りです。

~/
 - public_html/
 - program/
(「 ~ 」(チルダとい います)はホームディレクトリを表し、たとえば、 /home/teacher/susaki/ を指します。)

つまり、「public_html」と「program」は、共にホームディレクトリの下に存在し、お 互い並列な関係です。

ここで、「public_html」の中にいる状態から「program」へ移動してみましょう。 方法は2つあり、1つめは、

% cd /home/teacher/susaki/program

または

% cd ~/program

という、「絶対パス」と呼ばれる、 長々しいディレクトリ名を書く方法です。もう一つ は、「絶対パス」の記述のように面倒くさいことはせずに、

% cd ../program

という、「相対パス」を使う方法です。 「相対パス」は、文字通り相対的な位置関係を 利用したディレクトリの指定方法です。ここで、「.. 」は1つ上のディレクトリを意味しています。 「cd ..」だけだと、一つ上の ホームディレクトリに上がることになります。 「cd ../program」とすることで、 一つ上のディレクトリに上がった ついでに、そこから「program」というディレクトリに移動するという操作を一度に行 います。これで目的が達成されました。

ついでに書くと、ただ

% cd

と打ち込むと、どんなディレクトリにいても、ホームディレクトリに戻ります。便利で すので、覚えておきましょう。これは、ホームディレクトリを表す 「~」(チルダ)を使うと、 下記のようにも書けます。同じ結果になります。

% cd ~

cdの練習問題

仮想的なユーザ「e02000ab」のディレクトリの一部を、下記に示す。この ディレクトリ構造にしたがって下記の設問の答えを考えよ。その答えは、 「e02000ab」を自分のユーザ名(例えば、「e02001ha」のように)に置き換えた 上で、一問一問、自分でコマンドを入力して結果を確認しながら解答を続けよ。

/
|__home/
     |__env02/
           |__e02000ab/
                |
                |__ .cshrc
                |
                |__ .mozilla/
                |       |__ default/
                |              |__ aaa00000.slt/
                |                      |__ Mail/
                |__ .signature
                |
                |__ Mail/
                |
                |__ WinSystem/
                |       |__ Netscape6/
                |              |__ aaa00000.slt/
                |                      |__ Mail/
                |                            |__ Local Folders/
                |                            |
                |                            |__ mailhost.edu.tuis.ac.jp/
                |
                |__ dream.txt
                |
                |__ hobby.txt
                |
                |__ public_html/
                |       |
                |       |__ index.html
                |
                |__ signature.txt
                |
                |__ town.txt

カレントディレクトリは、ホームディレクトリの「e02000ab」として、問題1を 始めよ。

  1. ディレクトリ「.mozilla」に移動せよ(カレントディレクトリを 「.mozilla」に変更せよ、という意味である)。

    注意:この移動した後に、「pwd」を実行して
    % pwd
    /home/env02/e02000ab/.mozilla
    
    と表示されたら(「e02000ab」の部分を除いて)成功である。もし上記のように 表示されなければ入力したコマンドに誤りがあったということである。
    問題2以降も、「pwd」を実行して確認するように。
  2. ディレクトリ「.mozilla」からホームディレクトリ「e02000ab」に 移動せよ。
  3. ホームディレクトリ「e02000ab」からディレクトリ 「WinSystem」の下の「Netscape6」の下の「aaa00000.slt」に移動せよ。
  4. 「aaa00000.slt」から2つ上のディレクトリ「WinSystem」に移動せよ。
  5. 「WinSystem」からホームディレクトリの下のディレクトリ「public_html」に 移動せよ。
(参考)

  記[          内容
/          ルートディレクトリ
.          カレントディレクトリ
..         親ディレクトリ(一つ上のディレクトリ)
~          ホームディレクトリ
~ユーザ名  指定ユーザのホームディレクトリ
           (例:「~e02000ab」は「e02000ab」のホームディレクトリを意味する)


[UNIXコマンドのページ] [須崎純一のトップページ]
須崎純一 京都大学大学 工学研究科都市環境工学専攻 環境情報学講座