1. ホーム
  2. スクリプト・コラム
  3. リナックスシェル

rm -rf / vs rm -rf /* rmの代わりにmvを使用することを推奨

2022-01-05 12:16:41

rmコマンドは、ディレクトリ内の1つまたは複数のファイルやディレクトリを削除したり、ディレクトリとその下のすべてのファイルやサブディレクトリを削除することができます。

<テーブル コマンド 役割 -f ファイルまたはディレクトリを強制的に削除する -i 既存のファイルやディレクトリを削除する前にユーザーに確認する -r 指定されたディレクトリにあるすべてのファイルとサブディレクトリを再帰的に処理します。 / Linuxのルートディレクトリを表す * すべてのドキュメント /* ルートディレクトリにあるすべてのファイル

注意:上記のコマンド "rm -rf /" または "rm -rf /*" を実行すると、Linux のルートディレクトリのすべてのファイルが削除され、直接サーバーがダウンします。

解決策はただ一つ、以下の通りです。

プログラマーは、rmコマンドを注意深く使う習慣を身につけ、代わりにmvコマンドを使うようにすべきです。

<テーブル コマンド 役割 ~/ 現在ログインしているユーザーのユーザーディレクトリ . カレントディレクトリを示す pwd 現在のパスを表示

mvの実装手順。

1. ターミナルを開き、コマンドを入力します: vim ~/.bashrc

2. 開いたファイルの末尾に以下のコードを追加します。

mkdir -p ~/.trash #Create a .trash folder in the home directory (hidden files, ls -a to see)
alias rm=del #Use alias del instead of rm   
del() # function del, what: change rm command to mv command
{  
  mv $@ ~/.trash/  
}  
cleardel() # function cleardel, role: empty the recycle bin .trash folder, y or Y means confirm, n means cancel
{  
    read -p "clear sure?[Input 'y' or 'Y' to confirm. && Input 'n' to cancel.]" confirm   
    [ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*   
}  

3. 変更を保存して終了
4. 4. 設定を有効にする:ターミナルで source ~/.bashrc と入力します。
5、反映されない場合は、一度ターミナルを閉じてから再度開いてください。この手順は手順4と同じです(ソース - ~/.bashrc)。この時点で設定は完了し、ターミナルでテストすることができます。

テスト結果(コマンド概要)

1. ファイルの削除

del [filename]
rm [filename]
del *
rm *


2. ごみ箱を空にする(ie: .trashフォルダを空にする)。

cleardel


注)コマンドには、削除するかどうかの確認があり、削除を確認する場合はyまたはY、削除を取り消す場合はnとなります。
注:rmコマンドは削除されていますので、ファイルを完全に削除するには、まずゴミ箱にファイルをdel deleteしてから、~/.trashフォルダに入り、cleardelコマンドでゴミ箱からすべてのファイルを完全に削除してください。

この記事では、rmの代わりにrm -rf /とrm -rf /*を使用することについて説明します。rm -rf /とrm -rf /*については、Script Houseの過去記事を検索するか、以下の記事を引き続き閲覧してください。