rm -rf を使用してユーザーが使用していない空のフォルダを削除することはできません

rm -rf を使用してユーザーが使用していない空のフォルダを削除することはできません

これはSolarisマシン(UNIX)です

いくつかのサブフォルダーを含むフォルダーがありますが、その中にファイルがありません。

root # ls -al `find trash`
trash:
total 6
drwxrwxrwx   3 root     root         512 Aug  6 07:37 .
drwxr-xr-x   9 ----     ----        1024 Oct  8 06:20 ..
drwxrwxrwx   3 root     root         512 Aug  6 07:37 src

trash/src:
total 6
drwxrwxrwx   3 root     root         512 Aug  6 07:37 .
drwxrwxrwx   3 root     root         512 Aug  6 07:37 ..
drwxrwxrwx   3 root     root         512 Aug  6 07:37 tob

trash/src/tob:
total 4
drwxrwxrwx   3 root     root         512 Aug  6 07:37 .
drwxrwxrwx   3 root     root         512 Aug  6 07:37 ..

削除しようとしましたが失敗しました:

root # rm -rf trash
rm: Unable to remove directory trash/src/tob: File exists
rm: Unable to remove directory trash/src: File exists
rm: Unable to remove directory trash: File exists

マウント ポイントを検索しようとしましたが失敗しました:

root # mount | grep `pwd`

pwd で実行中のプロセスを探そうとしましたが失敗しました:

root # fuser -u `find trash`
trash:
trash/src:
trash/src/tob:

ディスクをフォーマットせずにこのフォルダを削除する方法を教えてください。私はまだ Unix の初心者なので、詳細を知りたい場合はコマンドも教えてください。

答え1

おそらく何らかのプロセスが再現しているのでしょうトブrm がファイルを削除した直後。対処法についてはブログ記事をご覧ください

このファイルを削除しても、別のファイルに置き換えられるだけです。解決策は 2 つあります。NFS サーバー上のファイルを手動で削除するか、(そのタイプのアクセス権がない場合は) プロセスを強制終了します。

ファイルが NFS 上にない場合は、どのプロセスがファイルへのハンドルを持っているかを確認し、それを強制終了するというアドバイスが依然として適用可能です。以下を確認してください。

fuser -u <file>

プロセスを終了した後、ディレクトリを削除できるはずです。

関連情報