大きなプロジェクトとそれらをコンパイルするスクリプトがあります。私はここにすべてのコードを追加することはできませんので、私は問題を単純化しようとします:クリーニング部ではinnerDir
という名前の別のディレクトリを含むdirectory
という名前のフォルダをクリーニングする必要があります。私はdirectory
を洗浄するため、このbashコマンドを持っている:rm -r -fは内部フォルダを削除しません
clean:
rm -r -f directory
ディレクトリが、私は事前にmkdir -p
で作成したフォルダがあります。私はきれいにするとき、私はこのエラーを取得する:
rm: cannot remove 'directory': Directory not empty
しかし、私はdirectory
を入力しようとすると、私はそれが空だということを参照してください。
rm -r -f directory/*
find directory
rmdir directory
(同じことを行うと仮定だが、ここで私もdirectory
のすべてのコンテンツが実際に削除されたかどうかを確認する機会を得る):だから、デバッグのために、私はあることを私のcleanningの一部を変更しました。
は今、私はこのエラーを取得する:
find: 'directory/innerDir': Permission denied
私にとって不明確二つがここにあります
(1)。 innerDir
は、後でコード内のパーミッションを変更することなく、開封部分の前にmakedir -p
で作成されました。なぜ私はそれを削除する許可を持っていないのですか?
(2)。私が再び清掃しようとすると、清掃は成功し、私は許可の問題はありません。だから、最初に許可エラーが出たら、削除しようとしましたが、なぜ2回目にそれを取得できませんか?
あなたはsudoでコマンドを実行していますか? –
@RamanSailopal - no。なぜ私はsudoで実行する必要がありますか? – Rodrigo
ターゲット 'clean'に' -rm -r -f directory'を使用します。 'rm'が失敗しても、makeは続行します。ただの回避策 – dlmeetei