
たとえば、次のスクリプトがあります。
for i in */*/
do
cd $i
cp POSCAR.ideal OSZICAR ..
cd ..
rm -r */
cd ../;
done
フォルダのサブフォルダを削除します。ただし、注意しないと、最後のサブフォルダがとして../
誤って記録されるなど、../../
コンピュータ全体が削除されます。これは本当に悪い!それでは、この悲劇を避けるために端末の動作範囲を安全に制限する方法があるかどうかを尋ねたいと思います。
答え1
@Joeがコメントで正しく言及したように、危険なスクリプトを書き換えることをお勧めします。ただし、現在のスクリプトを引き続き使用する場合は、基本的なアプローチはrm
すべての操作をif
条件付きでラップすることです。
たとえば、次のようになります。
if pwd | grep <some-pattern>;
then rm -r */;
fi;
必要に応じてこのセクションを変更できますgrep
。私のポイントは、コマンドをgrep
実行するrm
前に簡単な確認を実行することです。