スクリプトを実行するためのディレクトリの制限

スクリプトを実行するためのディレクトリの制限

たとえば、次のスクリプトがあります。

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前に簡単な確認を実行することです。

おすすめ記事