人間として、次のような間違いを受け入れる必要があります: rm -rf * 起こり得る ! 「予防は治療よりも優れている」と言っているように、このような重要なコマンドの実行中はベストプラクティスに従います。ここでは、Linuxマシンでこのような偶発的な削除を回避する方法を紹介します。それでも、ファイルを削除して取得したい場合は、次の手順に従ってください:削除されたデータを取得する方法!
1. rm -rf ./*(推奨)を使用しないでください
実際のところ、パスの先頭で./の代わりに、*を使用してください。スラッシュは実際にはコマンドに値を追加せず、混乱を引き起こすだけです。上記のコマンドは、次のように書き直すことができます:
rm -rf *
2. rmのオプションとして「–preserve-root」を使用します(推奨)
rmコマンドには、ルートディレクトリが誤って削除されるのを防ぐための「–preserve-root」オプションが含まれていますが、この動作は古いマシンではデフォルトではありません。したがって、これからは/ etc/bashrcと/etc/profileに以下を追加するだけです。
alias rm=”rm -–preserve-root”
注:それでも削除する場合は、–no-preserve-root属性を使用できます
3.重要なディレクトリの削除を防ぎたい場合は? (推奨)
そのディレクトリに-iという名前のファイルを作成し、次のコマンドに従って実行します:
touch -- -i or touch ./-i
rm -rf *:
を試してくださいMon Oct 21>$pwd /tmp/demo Mon Oct 21>$touch {1..4} Mon Oct 21>$touch -- -i Mon Oct 21>$ls 1 2 3 4 -i Mon Oct 21>$rm -rf * rm: remove regular empty file `1'? y rm: remove regular empty file `2'? y rm: remove regular empty file `3'? y rm: remove regular empty file `4'? y
上記のコマンドは、それ自体を次のように変換します。rm -rf -i *ここで、-iはファイルをインタラクティブに削除します。したがって、ファイルを削除するたびにプロンプトが表示されます!
4. safe-rmを使用する(推奨)
Safe-rmは、/ bin / rmをラッパーに置き換えることで、重要なファイルが誤って削除されるのを防ぐことを目的とした安全ツールです。ラッパーは、指定された引数を、削除してはならないファイルとディレクトリの構成可能なブラックリストと照合します。
これらの保護されたファイルまたはディレクトリの1つを削除しようとすると、削除できなくなり、代わりに警告メッセージが表示されます。
#rm -rf /etc Skipping /etc
5. Windowsの場合と同様に、ごみ箱ディレクトリを作成し、削除したすべてのファイルをごみ箱ディレクトリに移動できます。 (非推奨)
これは良い習慣ではありません。削除を続けると、これらのファイル/フォルダはまだごみ箱ディレクトリに蓄積され、それらも削除するのに時間を費やす必要があります。それでも、それを実行したい場合は、次のようになります。/ usr / local /bin/の下に次のコンテンツを含むファイルdel.shを作成します。
#!/bin/bash DIRECTORY="$HOME/.Trash"; if [ ! -d $DIRECTORY ] ; then echo "Directory $DIRECTORY doesn't exist"; echo "Creating the .Trash directory....."; mkdir $DIRECTORY; fi mv "$@" $HOME/.Trash
/ etc/bashrcまたは/etc/ profile
にrmのエイリアスを作成しますalias rm="/usr/local/bin/del.sh"
6. rmコマンドを実行したときに警告するbashスクリプトを作成しますか? (推奨)
/ usr / local /bin/の下に次の内容のファイルdel.shを作成します。
#!/bin/bash # Copyright (c) 13th Aug 2014 Focus4Infotech # All Rights Reserved # Function of this script is to avoid unknowing deletion # of files, which is hard to recover. This script # doesn't backup, instead it just warns and upon user # confirmation, it removes the files. # Authors : Focus4infotech.com echo " __ ___ _ ___ ___ _ _ _ ___ ___ _ _ ___ ___ "; echo "| \ |___ | |___ | | |\ | | __ |___ | | |___ [__ "; echo "|__/ |___ |___ |___ | | | \| |__] | | |___ |___ ___] ...."; echo " __ ___ ___ __ ___ ___ ___ _ _ _ "; echo " |__] |___ | |__| |__/ |___ |___ | | | "; echo " |__] |___ |___ | | | \ |___ | |__| |___ "; echo " ___ __ _ _ ___ _ _ _ _ _ ___ _ _ _ _ "; echo " | | | |\ | | | |\ | | | |___ \_/ / |\ | "; echo " |___ |__| | \| | | | \| |__| |___ | / | \| "; read -p "" choice case "$choice" in y|Y ) rm "$@";; n|N ) echo "Exiting without any change.....";exit 0;; * ) echo "Exiting without any change......";exit 0;; esac
/ etc/bashrcまたは/etc/ profile
にrmのエイリアスを作成しますalias rm="/usr/local/bin/del.sh"