4.6. ファイルのコピー、移動 -cp , mvコマンド-


4.6. ファイルのコピー、移動 -cp , mvコマンド-

【コマンド説明】cp:copy
cpコマンドはファイルやディレクトリをコピーします。

【動画説明】
/home/user1/test.txtを/home/user1/test2.txtというファイルへコピーしてみましょう。

まずはtest.txtファイルを作成します。

$ echo "this is test" > /home/user1/test.txt

ファイルの中身を確認します。

$ cat /home/user1/test.txt

test.txtファイルをtest2,txtファイルへコピーしましょう。

$ cp /home/user1/test.txt /home/user1/test2.txt

/home/user1にtest.txtファイルとtest2.txtファイルが存在している事を確認しましょう。

$ ls –l /home/user1

中身がtest.txtと同じ内容になっていることを確認してみましょう。

$ cat /home/user1/test2.txt

【オプション説明】
cpコマンドのオプションには下記の様なオプションがあります。

-a ファイル構成やアクセス権限を保持してコピー
-i コピー先に同名のファイルがある場合は、上書きするかを問い合わせる
-L コピー先にあるファイルがシンボリックリンクの場合は、シンボリックリンク元を上書き
-p コピー元ファイルのパーミッションやアクセス時間をコピー先にも反映
-s コピーする代わりにシンボリックリンクをコピー先に作成
-t コピー先ディレクトリを指定
-u コピー先に同一ファイルが既に存在し、最終更新時間がコピー元ファイルより新しい場合は、コピーを実行しない
-b コピー先にファイルが既に存在する場合は、ファイル名末尾に「~」を付けたバックアップを作成
-v 作業過程を詳細表示する
-r ディレクトリごとコピーする

動画ではよく使うオプションとして下記3つのオプションを実演してみます。

-a ファイル構成やアクセス権限を保持してコピー
-v 作業過程を詳細表示する
-r ディレクトリごとコピーする

【動画説明】
以下のコマンドはrootアカウントで実行します。

1.-vオプションは作業過程を詳細表示します。
/home/user1/test.txtを/home/user1/test3.txtへ -vオプションをつけてコピーしてみましょう。実行内容の詳細が画面に表示されます。

# cp –v /home/user1/test.txt /home/user1/test3.txt
`/home/user1/test.txt' -> `/home/user1/test3.txt'

2. -aオプションはできるだけ属性や構造を保持してコピーします。
/home/user1/test.txtを/home/user1/test4.txtへコピーしましょう。
まずはオプションを何もつけずにコマンドを実行しましょう。
コマンド実行後にls –l コマンドを実行してファイルの詳細を確認しましょう。

# cp /home/user1/test.txt /home/user1/test4.txt
# ls -l
→ ファイルの更新日時やファイルの所有者が変更されてしまいました。

/root/test.txtを/root/test5.txtへ -aオプションをつけてコピーしてみましょう。
コマンド実行後にls –l コマンドを実行してファイルの詳細を確認しましょう。

# cp -a /home/user1/test.txt /home/user1/test5.txt
# ls –l
→ ファイルの更新日時やファイルの所有者は元のままです。

3. -rオプションはディレクトリごとコピーします。
/tmpディレクトリを/root/へコピーしてみましょう。
まずはオプションを何もつけずにコマンドを実行しましょう。

# cp /tmp/ /root/
cp: omitting directory `/tmp/'
→ オプションなしだとディレクトリのコピーはできません。

/tmpディレクトリを-rオプションをつけてコピーしてみましょう。

# cp –r /tmp /root
# ls –l /root/
→ ディレクトリをコピーすることができました。

【問題】
cpコマンドを使用して以下の動作を実行してみて下さい。

1自分のアカウントのホームディレクトリにtest.txtファイルを作成しましょう。
作成した
test.txtをtest2.txtというファイル名でコピーしてみましょう。コピーできたらファイルの中身が同じになっているかcatコマンドで確認しましょう。

ヒント: echoコマンドを用いるとファイルが作成できます。
$ echo “this is test” > /ホームディレクトリ/test.txt

2. 自分のアカウントのホームディレクトリにtest.dirディレクトリを作成してみましょう。作成したtestd.dirをtest2.dirというディレクトリ名でコピーしてみましょう。

ヒント:mkdirコマンドを用いるとディレクトリが作成できます。
$ mkdir testdir

3問題1で作成したtest.txtファイルを問題2で作成したtest.dirの中へ、ファイル権限や更新日時などをできるだけ保持したままコピーしてみましょう。

4. 問題3で作成したtest.dirをファイル構成、ファイル権限、 更新日時などをできるだけ保持したままtest3.dirというディレクトリ名でコピーしてみましょう。

ヒント:ファイル情報の確認は”ls –l”コマンドを使用します。
$ ls –l

【コマンド説明】mv:move
mvコマンドはファイルやディレクトリの移動を行います。ファイル名の変更にも使用されます。

【動画説明】
・ファイルの移動
まずはfile.htmlファイルを/home/user1に作成します。

$ echo "this is test" > /home/user1/file.html

作成したファイルを/tmpディレクトリに移動させてみましょう。コマンド実行後/home/user1にが無くなfile.htmlり、/tmpにfile.htmlが存在していることを確認しましょう。

$ mv /home/user1/file.html /tmp/file.html
$ ls /home/user1
$ ls /tmp

・ファイル名の変更
/tmp/file.htmlを/tmp/file2.htmlというファイル名に変更してみましょう。

$ mv /tmp/file.html /tmp/file2.html
$ ls /tmp

【オプション説明】
mvコマンドのオプションには下記の様なオプションがあります。

-f 同一名のファイルがある場合は確認を行わず上書きする
-i 同一名のファイルがある場合は確認を行う
-u 移動先ディレクトリ名が既にある場合は移動先が新しければ移動を行わない
-b 移動先ファイル名が既に存在する場合はファイル名の末尾に「~」をつけてバックアップする

【問題】
1. 自分のアカウントのホームディレクトリにtest.txtファイルを作成しましょう。test.txtを作成したらtest2.txtというファイル名に変更してみましょう。

ヒント: echoコマンドを用いるとファイルが作成できます。
$ echo “this is test” > /ホームディレクトリ/test.txt

2. 問題1で作成したtesat2.txtを/tmpディレクトリへ移動してみましょう。移動できたら自分のホームディレクトリのファイル一覧と/tmpディレクトリのファイル一覧をlsコマンドで確認してみましょう。

資料をダウンロード