重複した内容が多いと思います。私はほとんどすべて(lsof、フューザーなど)を見ましたが、それを理解することはできません。
rm: 'temp_p/sys' を削除できません: デバイスまたはリソースが使用中です。
Bash スクリプトからフォルダを削除しようとしたときに発生するエラーです。私が使用するコマンドは次のとおりです。
test -f "$TEMP_DIR" && sudo rm -rf "$TEMP_DIR"
シェルでrm -rfを実行してみましたが、同じ出力が表示されます。 lsofの出力は次のとおりです。
lsof +D <directory name>
lsof: 警告: stat() fusion.gvfsd-fuse ファイルシステム /run/user/76585/gvfs を実行できません。出力情報が不完全である可能性があります。 lsof:警告:vfatファイルシステム/media/kostef1/9016-4EF8をstat()できません。出力情報が不完全である可能性があります。
フューザには何も表示されません。隠しファイルをすべて一覧表示しても、ドットで始まる項目は表示されません。
ベストアンサー1
temp_p/sys
これは、ファイルシステムがマウントされており、最初にアンマウントする必要があることを示します。
umount -- "$TEMP_DIR/sys"
rm -rf -- "$TEMP_DIR"
または:
if mountpoint -q -- "$TEMP_DIR/sys"; then
umount -- "$TEMP_DIR/sys" || exit
fi
rm -rf -- "$TEMP_DIR"
まずマウントポイントであることを確認し、マウント解除できない場合は中止してください。
ところで、rm -rf
上記では避けていたマウントされたファイルシステムの内容を整理します。
ファイルを別のファイルシステムに残して空にするには、$TEMP_DIR
次のものを使用できますfind
。
find "$TEMP_DIR" -xdev -depth -delete
(-delete
ヒントが-depth
ありますが、まだ通知として含めることをお勧めします)。
また参考にしてくださいtest -f "$TEMP_DIR"
$TEMP_DIR
かどうかをテストすることです。定期的なファイル(シンボリックリンクの確認後)に対して、他の種類のファイル(ディレクトリを含む)の場合はfalseを返します。たぶんあなたはその逆を意味するかもしれませんtest -d
。また、すでに消えているファイルを削除するように求められても文句を言わないので、存在しない可能性が-f
あるrm
ファイルを呼び出すことができます。