【Linux入門】cp・mv・rmの使い方 - ファイル操作を安全に行う方法
はじめに
リナ: ライニー先輩、ファイルをコピーしようとしたら、なんか上書きしちゃったみたいで...
ライニー先輩: あらら、それは焦るよね。Linuxのファイル操作は便利だけど、ちょっとしたミスで大事なファイルを消しちゃうこともあるんだ。
リナ: え、怖い...どうすれば安全に操作できるんですか?
ライニー先輩: 大丈夫、ポイントを押さえれば安全に使えるよ。今日は
cp・mv・rmの3つのコマンドを、事故を防ぐ方法と一緒に覚えていこう。
練習環境を用意しよう
ライニー先輩: まずは練習用のディレクトリを作ろう。大事なファイルを間違って消さないように、専用の場所で練習するのが基本だよ。
$ mkdir -p ~/practice/file-ops $ cd ~/practice/file-ops $ pwd
/home/user/practice/file-ops
リナ:
mkdir -pの-pって何ですか?
ライニー先輩: 途中のディレクトリがなくても、まとめて作ってくれるオプションだよ。
practiceディレクトリがなくても、一気にpractice/file-opsを作れるんだ。
cp:ファイルをコピーする
ライニー先輩:
cpは「copy」の略で、ファイルをコピーするコマンドだよ。
基本の使い方
$ echo "Hello Linux" > original.txt $ cp original.txt copy.txt $ ls
copy.txt original.txt
リナ: お、
copy.txtができました!
ライニー先輩:
cp コピー元 コピー先の順番だね。元のファイルはそのまま残るよ。
上書き事故を防ぐ:-i オプション
ライニー先輩: ここからが大事。
cpは同じ名前のファイルがあると、確認なしで上書きしちゃうんだ。
リナ: え、それで私のファイルが...!
ライニー先輩: そう、だから
-iオプションをつける習慣をつけよう。「interactive(対話的)」の略で、上書き前に確認してくれるよ。
$ cp -i original.txt copy.txt
cp: overwrite 'copy.txt'?
リナ: おお、聞いてくれた!
yで上書き、nでキャンセルですね。
ライニー先輩: その通り。常に
cp -iを使うのが安全だよ。
ディレクトリをコピーする:-r オプション
ライニー先輩: ディレクトリをコピーするときは
-rオプションが必要だよ。「recursive(再帰的)」の略で、中身ごとコピーしてくれる。
$ mkdir mydir $ touch mydir/file1.txt mydir/file2.txt $ cp -r mydir mydir-backup $ ls mydir-backup
file1.txt file2.txt
cpコマンドのポイント
cp コピー元 コピー先- 基本形cp -i- 上書き確認(安全のため常に使う)cp -r- ディレクトリをコピー
mv:ファイルを移動・リネームする
ライニー先輩:
mvは「move」の略。ファイルの移動と名前変更、両方に使えるよ。
ファイル名を変更する
$ mv copy.txt renamed.txt $ ls
mydir mydir-backup original.txt renamed.txt
リナ:
copy.txtがrenamed.txtになりました!
ライニー先輩:
mvは移動先がファイル名なら「リネーム」、ディレクトリなら「移動」になるんだ。
ファイルを移動する
$ mv renamed.txt mydir/ $ ls mydir
file1.txt file2.txt renamed.txt
リナ:
renamed.txtがmydirの中に移動しました。
上書き事故を防ぐ:-i オプション
ライニー先輩:
mvもcpと同じく、同名ファイルがあると上書きしちゃう。だから-iオプションをつけよう。
$ mv -i original.txt mydir/
mvの注意点
mvは「移動」なので、元の場所からファイルがなくなります。「消えた!」と焦る前に、移動先を確認しましょう。
mvコマンドのポイント
mv 元 先- 移動またはリネームmv -i- 上書き確認(安全のため常に使う)- 移動先がディレクトリなら移動、ファイル名ならリネーム
rm:ファイルを削除する
ライニー先輩:
rmは「remove」の略で、ファイルを削除するコマンドだよ。これが一番注意が必要。
リナ: どうしてですか?
ライニー先輩: Linuxには「ゴミ箱」がないんだ。
rmで消したファイルは、基本的に復元できない。
リナ: ひえっ...慎重にやります。
基本の使い方
$ touch delete-me.txt $ ls
delete-me.txt mydir mydir-backup
$ rm delete-me.txt $ ls
mydir mydir-backup
削除前に確認:-i オプション
ライニー先輩:
rmこそ-iオプションが大事。削除前に確認してくれるよ。
$ touch test.txt $ rm -i test.txt
rm: remove regular empty file 'test.txt'?
リナ:
yで削除、nでキャンセルですね。
ライニー先輩: うん。初心者のうちは常に
rm -iを使おう。
ディレクトリを削除する:-r オプション
$ rm -r mydir-backup $ ls
mydir
リナ: ディレクトリも消えました。
ライニー先輩:
-rは中身ごと削除するから、使う前にlsで中身を確認するのがおすすめだよ。
危険:rm -rf は使わない
rm -rfは確認なしで強制削除するコマンドです。初心者は絶対に使わないでください。間違ったディレクトリを指定すると、大事なファイルがすべて消えてしまいます。
rmコマンドのポイント
rm ファイル名- ファイルを削除rm -i- 削除前に確認(常に使う)rm -r- ディレクトリを中身ごと削除rm -rfは使わない
ミニ課題
ライニー先輩: じゃあ、今日学んだことを実際に試してみよう!
課題1:ファイルを安全にコピーしよう
やること:memo.txtというファイルを作成し、memo-backup.txtという名前でコピーしてください。上書き確認オプションをつけること。
ヒントを見る
echoでファイルを作成し、cpの-iオプションを使ってコピーしよう。
解答例を見る
$ echo "大事なメモ" > memo.txt $ cp -i memo.txt memo-backup.txt $ ls
memo-backup.txt memo.txt mydir
課題2:ファイルを移動してリネームしよう
やること:memo.txtをmydirディレクトリに移動し、さらにimportant.txtという名前に変更してください。
ヒントを見る
mvコマンドを2回使うか、移動とリネームを組み合わせて1回で行う方法もあるよ。
解答例を見る
$ mv -i memo.txt mydir/ $ mv -i mydir/memo.txt mydir/important.txt $ ls mydir
file1.txt file2.txt important.txt original.txt renamed.txt
または1回で:
$ mv -i memo.txt mydir/important.txt
課題3:不要なファイルを安全に削除しよう
やること:memo-backup.txtを削除してください。削除前に確認が出るようにすること。
ヒントを見る
rmの-iオプションを使おう。確認が出たらyで削除、nでキャンセルできるよ。
解答例を見る
$ rm -i memo-backup.txt
rm: remove regular file 'memo-backup.txt'? y
$ ls
mydir
振り返り
リナ: なるほど、
-iオプションをつければ、上書きや削除の前に確認が出るんですね!
ライニー先輩: そう、それが一番大事なポイント。
cp -i、mv -i、rm -iを習慣にすれば、ほとんどの事故は防げるよ。
リナ: あと、
rmはゴミ箱がないから特に注意、ですね。
ライニー先輩: うん。操作前に
lsで確認する習慣もつけると、さらに安全だね。
今日の3行まとめ
cp -iでファイルをコピー、-rでディレクトリをコピーmv -iでファイルを移動・リネームrm -iで削除(rm -rfは使わない)
実践でファイル操作をマスターしよう
今日学んだコマンドを、Penguin Gym Linuxの実践課題で手を動かして定着させましょう。