rmでファイルを削除する
ゴミ箱には入らない
rm で消したファイルは、どこにも残りません。デスクトップのゴミ箱にあたる場所を経由しないので、実行した瞬間に取り戻す手段が無くなります。バックアップが無ければ、それで終わりです。
このコマンドだけは、覚える順番を逆にします。使い方より先に、消す前の確認手順を身につけてください。
消す前に、対象を ls で見る
不要になったビルドの中間ファイルを片付ける場面で考えます。まず、消そうとしている場所に何があるかを見ます。
ターミナル
ls /tmp/build_cache
# bundle.js bundle.js.map vendor.js出てきた 3 つが、本当に消してよいものかを確かめます。確かめてから消します。
ターミナル
rm /tmp/build_cache/bundle.js消えたかどうかも、もう一度 ls で見ます。
ターミナル
ls /tmp/build_cache
# bundle.js.map vendor.jsこの「見る、消す、見る」の 3 手を崩さないでください。事故が起きるのは、たいてい 1 手目を省いた日です。1 つずつ確認しながら進めたいときは -i を付けると、消す直前に毎回聞いてくれます。
-r と -f が並んだときがいちばん危ない
ディレクトリを中身ごと消すときは -r が要ります。さらに -f を足すと、確認も警告もいっさい出さずに消し続けます。この 2 つが並んだ rm -rf は強力なので、実務では次の 2 点を守ってください。
まず、渡すパスを短くしないことです。頂点に近い場所や、ホームを丸ごと指すような短いパスを渡すと、想定の何千倍もの範囲が一瞬で消えます。次に、シェル変数でパスを組み立てないことです。変数が空のまま展開されると、指定したつもりの階層が抜け落ち、まったく別の場所が対象になります。
そして、-r を使うときこそ、同じパスで先に ls を打ちます。そこに並んだものだけが消えると納得してから実行する。この一拍が、取り消せない操作に対する唯一の保険です。
消すのが惜しいなら、いったん別の場所へ
mvで退避しておく手もあります。数日置いて誰も困らなければ、そのときに消せば十分です。
課題
- rm を使う
- erase.txt を削除する
- keep.txt のみが残る