私はいくつかのスクリプトを書いていて、次のようなものを書きました
ARTIFACTS="/SOME/PATH"
[ -d $ARTIFCATS ] && rm -rf $ARTIFACTS/*
何が起こったのかというと、私は愚かさのために最初の行を実行せずに2行目を実行したということです。[-d ""]がtrueを返し、式が
rm -rf /*
幸い、それは単なるテストマシンであり、sudoではありませんでしたが、一部のデータを失いましたが
私の質問は、なぜ[-d ""]がtrueを返すのですか?ドキュメントには、パスが存在し、フォルダであるかどうかをチェックすることが明確に記載されています
私は使用して問題を解決しました
[ -e $ARTIFACTS ]
うまくいくようです
乾杯
rm -rf $ARTIFACTS
なしでそれを書くだけ/*
です。これにより、$ARTIFACTS
ディレクトリも削除されます。これは問題ありませmkdir -p $ARTIFACTS
ん。何かを配置する前にディレクトリが存在することを確認したい場合は、とにかく実行します。また、内部に隠されたファイルを削除します$ARTIFACTS
私は書きませんので、細かいもある、rm -rf $ARTIFACTS/*
あれば$ARTIFACTS
含まれている何でも、私は保存したかったし。