ディレクトリとそれを考慮したファイル操作
ディレクトリを考慮したファイル操作の考え方
コマンドを使って,ディレクトリを意識しながらファイルのディレクトリ間の移動やコピーを行うと,慣れないうちは混乱しそうになるが,下記のようにパス名を「ファイルやディレクトリの配置位置(場所)」と意識しながら考えると多少分かりやすい.
- ファイルをコピーするために,cp aaa bbb(但しaaa, bbbは絶対パス・相対パスのいずれでも良い)と操作する場合,
- パス名bbbに該当するディレクトリが存在していない場合はパス名bbbで示される位置に新しいファイルがコピーされて作られる.
例えばcp sample/english.txt ../report/e.docであれば,e.docという名前のファイルがenglish.txtの中身を複製して作られる.カレントディレクトリを起点としたファイルの配置関係は,各自考えてみること.ちなみにbbbで示される位置に通常のファイルが既に存在している場合は,そのファイルは削除されて新しくコピーされたファイルに入れ替わる. - パス名bbbに該当するディレクトリが既に存在する場合は,bbbディレクトリ内にファイルができる.この時のファイル名はパス名aaaのうち,/記号で区切られた最後の部分が使われる.
例えばcp sample/english.txt ../reportであれば,sample
ディレクトリに存在するenglish.txt
ファイルを複製して,english.txt
という同じ名前の別ファイルとしてreport
ディレクトリにコピーされて配置される.
- ファイルを移動するために,
mv aaa bbb
と操作する場合,
- パス名aaaで示されるものがファイルである場合
- パス名bbbに該当するディレクトリが存在しない場合,aaaで示されるファイルはbbbで示される位置に配置されるようにファイル名とディレクトリ位置が変更される.
例えばmv sample/english.txt ../report/e.docであれば,english.txtというファイルがe.docという名前に付け替えられるのに加えて,一つ上のディレクトリに存在するreportディレクトリに置かれる.尚,移動先に同じ名前の通常ファイルが既に存在するときは,そのファイルは削除されて置き換えられる.
- パス名bbbに該当するディレクトリが存在する場合,aaaで示されるファイルはbbbで示されるディレクトリへ同じ名前のまま移動される.
例えばmv sample/english.txt ../reportであれば,english.txtというファイルが同じ名前のまま,一つ上のディレクトリに存在するreportディレクトリに移動される.
- パス名aaaで示されるものがディレクトリである場合,
- パス名bbbに該当するディレクトリが存在しない場合,aaaで示されるディレクトリはパス名bbbで示される位置にくるように配置される.
例えばmv sample ../reportであれば,sampleディレクトリは,reportと名前を変更された上で,一つ上のディレクトリに移動される.尚,移動先に同じ名前の通常ファイルが既に存在するときは,そのファイルは削除され,移動されたディレクトリに置き換えられる.
- パス名bbbに該当するディレクトリが存在する場合,aaaで示されるディレクトリはbbbで示されるディレクトリの下に配置される.
例えばmv sample ../reportであれば,sampleディレクトリは一つ上のディレクトリに存在するreportディレクトリの下へ移動される.
これを踏まえたうえで前回の練習問題を再びじっくりと考えながら行ってみよ.尚,始める前に,ホームディレクトリにsampleディレクトリやreportディレクトリが存在してしまっている場合は予め削除しておき,english.txtファイルがホームディレクトリに存在していることを予め確認しておくこと.もしenglish.txtファイルが存在していない場合はjp.txtなど既に作成済みのテキストファイルをコピーして(例えばcp jp.txt english.txt
などと実行する),english.txtファイルを準備しておいてから始めること.
前回の練習問題はこちらへ
本日の提出課題はこちらへ
基礎プログラミング演習Iの表紙ページへ戻る