unlink と remove
コメント欄より。
わたしの場合、remove は「削除する」というイメージで、
unlink は「( 結合しているものを ) 外す」というイメージ。
英単語から連想する動作は別なのに〜って
ただそれだけなんですよ。
ファイルの削除ってのは大抵の場合、親ディレクトリにある自身のエントリを削除することなので、そう考えるとファイルの削除は確かに unlink で、結局一緒なんではないかと思う。ていうか、unlink って随分昔からあるシステムコールだと思うのだが。
でも、実は最近の POSIX 的には unlink と remove は違うものらしい。remove は対象が ファイルだと unlink、ディレクトリだと rmdir を呼ぶものとのこと。Python のコードだとこんな感じか。
import os.path def remove(path): if os.path.isdir(path): return rmdir(path) elif os.path.isfile(path): return unlink(path) else: return False
Linux だとこういう実装は libc6 からで、libc5 以前は remove == unlink だった様子。POSIX のほうが改訂されたのかな。
まぁ、でもコメントで指摘されているとおり、Python のマニュアルには os.remove と os.unlink は同じものという記述があるので、「2.5 なら直っているかもしれない」なんて書く前にマニュアルを読めという話であったりもする。