next up previous contents index
Next: 3.11 ファイルへのリンク Up: 3. ファイルとディレクトリ Previous: 3.9 ディレクトリの作成,消去


3.10 ファイル,ディレクトリの移動,コピー -- mvcp

ファイル名やディレクトリ名はすべてパスを用いて指定できる.ファイル名や ディレクトリ名を変更することによって,ファイルやディレクトリを移動 (mv),コピー(cp)できる.

   
3.10.1 ファイル,ディレクトリを移動する -- mv

 

mvコマンドを用いれば,ファイルやディレクトリの名前を変更して,ファ イルやディレクトリをあるディレクトリから他のディレクトリへと移動できる.

% mv [-i] [変更前のファイル/ディレクトリ名] [変更後のファイル/ディレクトリ名]<RET>

   
ファイル名を変更する

カレントディレクトリ内でのファイルの移動がファイル名の変更に相当する. ファイル名の変更の場合は,mvコマンドに続けて名前を変更するファイ ル名,新しいファイル名の順に指定する.また,すでに存在するファイル名を 新しいファイル名として指定した場合には,もとのファイルは上書きされてそ の内容が失われてしまうので注意すること.このとき,-iオプションを 指定すると上書きするか確認を求められる.

% ls<RET>
file1      file2
% mv file1 file3<RET>
% ls <RET>
file2      file3
% mv -i file2 file3<RET>
remove file3? n<RET>
% ls<RET>
file2      file3
% mv file2 file3<RET>
% ls<RET>
file3
% _

   
ファイルを移動する

ファイルをカレントディレクトリから別のディレクトリへ移動するには,mvコマンドに続けて,移動元のファイル名,移動先のファイル名を指定する. ここで指定するファイル名は相対パス,絶対パスのどちらで指定してもよい.

% ls -F<RET>
dir1/      file1      file2
% mv file1 dir1/file-moved<RET>
% ls -F<RET>
dir1/      file2
% cd dir1<RET>
% ls<RET>
file-moved
% _

ディレクトリ名を変更する

カレントディレクトリ内でのディレクトリの移動がディレクトリ名の変更に相 当する.

% ls -F<RET>
dir1/      dir2/      file1
% mv dir2 dir3<RET>
% ls -F<RET>
dir1/      dir3/      file1
% _

ディレクトリごと移動する

mvコマンドでは,ディレクトリをその下のファイルやサブディレクトリ ごと他のディレクトリに移動することもできる.ただし,移動先のディレクト リが存在しない場合は,ディレクトリの名前が変更されるだけである.

例として`dir1'というディレクトリを,`dir2'というディレクト リの下に移動する.

% ls -F<RET>
dir1/    dir2/
% mv dir1 dir2<RET>
% ls -F dir2<RET>
dir1/
% _

  
図: ディレクトリごと移動する

3.10.2 ファイル,ディレクトリをコピーする -- cp

       

ファイルをコピーする

ファイルをコピーするには,cpコマンドに続けてコピー元のファイル名, コピー先のファイル名を指定する.コピー先に指定したファイル名と同じ名前 のファイルがすでに存在していた場合には,cpコマンドによってファイ ルは上書きされてしまう.誤ったファイルの上書きを防ぐには-iオプショ ンを指定する.-iオプションを指定すると,上書きをする前に``overwirte ?''と表示され,上書きを行うか確認を求められる.yと入 力するとファイルは上書きされ,nと入力するとコマンドの実行が中止 され,ファイルは上書きされない.

% cp [-i] [コピー元のファイル名] [コピー先のファイル名]<RET>
% cp -i file1 file2<RET>
overwrite file2? y<RET>
% _
カレントディレクトリとは異なるディレクトリからファイルをコピーする場合 は,絶対パスまたは相対パスでファイル名を指定する.また,コピー先のファ イル名をコピー元と同じにする場合はコピー先のファイル名に``.'' (ピリオド)を指定する.

次の例では,ログイン名が`s98000hf'のユーザのホームディレクトリか ら,`file1'をコピーしている.はじめの例では,`file1'を `hanakofile1'という名前で,2つめの例では,``.'' (ピリオド) を使ってカレントディレクトリにコピー元と同じ名前でファイルをコピーして いる.

% pwd
/home/t98000tf/
% ls<RET>
file2      file3
% cp ~s98000hf/file1 hanakofile1<RET>
% ls<RET>
file2      file3      hanakofile1
% cp ~s98000hf/file1 .<RET>
file1      file2      file3      hanakofile1
% _

複数のファイルを同時にコピーする

複数のファイルを同時にコピーするときは,cpコマンドに続けてコピー 元のファイルを並べ,最後にコピー先のディレクトリ名を指定する.ファイル は同じ名前のまま,指定されたディレクトリの中にコピーされる(図 ).

% cp [ファイル名 ...] [ディレクトリ名]<RET>
次の実行例では`file1'と`file2'の2つのファイルが`dir1'というディレクトリの下にコピーされている(図).

% ls<RET>
dir1      file1      file2
% cp file1 file2 dir1<RET>
% ls<RET>
dir1      file1      file2
% cd dir1<RET>
% ls<RET>
file1     file2
% _

指定されたディレクトリが存在しない場合には,エラーメッセージが表示され, コピーは行われない.

% cp file1 file2 dir2<RET>
Usage: cp [-ip] f1 f2; or: cp [-irp] f1 ... fn d2
% _

  
図: 複数のファイルをコピーする

ディレクトリごとコピーする

cpコマンドのオプションに-rを指定することで,指定したディレ クトリ以下のファイルをすべてコピーできる(図).

% cp [-r] [コピー元のディレクトリ名] [コピー先のディレクトリ名]<RET>
次の実行例では,ディレクトリ`dir1'以下のファイルをすべてディレク トリ`dir2'の下にコピーしている(図).

% ls<RET>
dir1      dir2
% ls dir1<RET>
file1     file2
% cp -r dir1 dir2<RET>
% ls<RET>
dir1      dir2
% cd dir2<RET>
% ls<RET>
dir1
% _


  
図: ディレクトリごとコピーする(1)


なお,コピー先として指定した`dir2'というディレクトリが存在しない 場合には,コピー元の`dir1'と同じディレクトリに,コピー元と同じ内 容のディレクトリ`dir2'が作成される(図).


  ディレクトリごとコピーする(2)