マウントされたボリュームに関して「rm」の一貫性のない動作は何ですか?

マウントされたボリュームに関して「rm」の一貫性のない動作は何ですか?

次のコマンドを順番に実行すると:

mkdir dir
ln -s dir link
rm -r link/

私は次のような結果を得ます。

rm: cannot remove `link': Not a directory

rm -r link単にを発行したり、より良い方法でを実行することができるので警告を受けましたrm link。とにかく、コマンドは操作を実行しました(つまり、「という名前のファイルを削除しました。)協会")。

マウントされたボリュームでこれらのタスクを実行すると、状況は若干異なります。目次「似たものに置き換え」/メディア/mymoviesこの場合、前の例のようにシンボリックリンクだけでなくボリューム全体も​​消去されます。

なぜですか?これはコードのバグですかrm、それとも予想されますか?なぜ一貫性がないのですか?

修正する:こんなことが起こったらめまいがするかもしれません。なぜなら今やってみるから」目次「コンテンツが削除されない限り削除されず、どちらの場合も(マウントされたディレクトリとローカルディレクトリ)です。私はLinuxを使用しています。2.6.32、私の考えでは2.6.37それから。

ベストアンサー1

マイシステム(Debian、Linux 2.6、rm --versionGNU coreutils 8.5 レポート)で、次のいずれかを実行します。目次マウントポイントです。以下から削除してください。文書、しかし目次または協会、表示されるのと同じエラーが発生します。

# mkdir dir && touch dir/file && ln -s dir link
# rm -r link/
rm: cannot remove `link': Not a directory
# ls
dir  link
# ls -l dir
total 0

# mount .../scratch_filesystem dir
# touch dir/file
# rm -r link/
rm: cannot remove `link': Not a directory
# ls
dir  link
# ls -l dir
total 0

私が正しく聞いた場合、rm -r link/コマンドは削除されません文書、しない限り目次/マウントポイントです。それではバグを発見したようですrm。マウントポイントの動作を変更する理由はありません。

rmどのバージョンを使用しているかを知ることは興味深いでしょう。

おすすめ記事