アカウント名:
パスワード:
cd $SQUID_PIDFILE_DIR && rm -rf ./* && rmdir $SQUID_PIDFILE_DIR
うわ、絶対パスだと消せる!rmdir . だと消せないのに。これでいいのか?
だって消そうとしているディレクトリ配下をカレントディレクトリとしているプロセスを全部調べ上げるって無駄じゃん昔からそういうことを考慮してOSを設計していたならともかくさ、過去のしがらみと拡張の歴史もあるわけだしカレントディレクトリの実体が存在しなくなったプロセスが必要に応じてエラー検出すればいいんですよ(hard linkやsymbolic linkされたディレクトリも要考慮なのですよ)
Solarisだと現在いるディレクトリは使用中で削除できないから、Linuxでも一度ディレクトリを変えなきゃいけないと思ってスクリプト作ってたわ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie
このタイプのバグを未然に防ぐには (スコア:1)
cd $SQUID_PIDFILE_DIR && rm -rf ./* && rmdir $SQUID_PIDFILE_DIR
rmdir?Linuxはカレントディレクトリ消せちゃうの? (スコア:0)
うわ、絶対パスだと消せる!rmdir . だと消せないのに。これでいいのか?
Re: (スコア:0)
だって消そうとしているディレクトリ配下をカレントディレクトリとしているプロセスを全部調べ上げるって無駄じゃん
昔からそういうことを考慮してOSを設計していたならともかくさ、過去のしがらみと拡張の歴史もあるわけだし
カレントディレクトリの実体が存在しなくなったプロセスが必要に応じてエラー検出すればいいんですよ
(hard linkやsymbolic linkされたディレクトリも要考慮なのですよ)
Re: (スコア:0)
Solarisだと現在いるディレクトリは使用中で削除できないから、Linuxでも一度ディレクトリを変えなきゃいけないと思ってスクリプト作ってたわ。