ファイル名やディレクトリ名はすべてパスを用いて指定できる.パスを用いることによって,ファイルやディレクトリを移動(mv),コピー(cp)できる.
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/ % _
ファイルをコピーするには, cpコマンドに続けてコピー元のファイル名,コピー先のファイル名を指定する.コピー先に指定したファイル名と同じ名前のファイルがすでに存在していた場合には, cpコマンドによってファイルは上書きされてしまう.誤ったファイルの上書きを防ぐには-iオプションを指定する. -iオプションを指定すると,上書きを行うか確認を求められる. yと入力するとファイルは上書きされ, nと入力するとコマンドの実行が中止され,ファイルは上書きされない.
% cp [-i] [コピー元のファイル名] [コピー先のファイル名]<RET>
% cp -i file1 file2<RET> cp: file2 を上書きしてもよろしいですか? y<RET> % _
カレントディレクトリとは異なるディレクトリからファイルをコピーする場合は,絶対パスまたは相対パスでファイル名を指定する.また,コピー先のファイル名をコピー元と同じにする場合はコピー先のファイル名に`.'(ピリオド)を指定する.
次の例では,ログイン名が`s00000hf'のユーザのホームディレクトリから,`file1'をコピーしている.はじめの例では,`file1'を`hanakofile1'という名前で,2つめの例では,`.'を使ってカレントディレクトリにコピー元と同じ名前でファイルをコピーしている.
% pwd /a/fs0601a/t00000tf/ % ls<RET> file2 file3 % cp ~s00000hf/file1 hanakofile1<RET> % ls<RET> file2 file3 hanakofile1 % cp ~s00000hf/file1 .<RET> file1 file2 file3 hanakofile1 % _
複数のファイルを同時にコピーするときは,cpコマンドに続けてコピー元のファイルを並べ,最後にコピー先のディレクトリ名を指定する.ファイルは同じ名前のまま,指定されたディレクトリの中にコピーされる(図1.7).
% cp [ファイル名 ...] [ディレクトリ名]<RET>
次の実行例では`file1'と`file2'の2つのファイルが`dir1'というディレクトリの下にコピーされている(図1.7).
% ls -F<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を指定する(図1.8).
% cp [-r] [コピー元のディレクトリ名] [コピー先のディレクトリ名]<RET>
% ls -F<RET> dir1 dir2 % ls dir1<RET> file1 file2 % cp -r dir1 dir2<RET> % ls<RET> dir1 dir2 % cd dir2<RET> % ls<RET> dir1 % _
なお,コピー先として指定した`dir2'というディレクトリが存在しない場合には,コピー元の`dir1'と同じディレクトリに,コピー元と同じ内容のディレクトリ`dir2'が作成される(図1.9).