パスワードを忘れた? アカウント作成
9120 story

FreeBSDのrmに新オプション-Iが追加 13

ストーリー by Oliver
(y/Y) 部門より

BSD 曰く、 "FreeBSDの rm コマンドに新しいオプション -I が導入された。これは、DragonFlyBSDで導入されたものがオリジナルになっているようだ。従来のオプション -i は、間違ってファイルを消去しないように一々その承認を求めて来るため、非常に煩雑で使えなかった。しかし、ついつい rm -fr * などと入力して、トラブルを起こすことも多いようだ。今回の -I は、リカーシブにディレクトリを消去する時と、3個以上のファイルの消去が指定された時に1度だけ承認を求めるように動作するようだ。さて、このオプションは広くエイリアスとして登録され使用されるだろうか。興味がわいてくる。"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • ゴミ箱 (スコア:2, すばらしい洞察)

    by miri (12057) on 2004年10月29日 16時15分 (#644662) 日記
    rmコマンドでゴミ箱に移動するようにしたらどうでしょう?
    ゴミ箱はサイズ固定で、あふれそうになったら古いものから自動削除。
    10分以内に入れられたものが自動削除されそうな場合には警告。
    ゴミ箱は空にしない(これ最強)

    完全に削除されなければならない、ってことはそんなに多くないと思うんですけどね。
    • by misuzu (7219) on 2004年10月30日 15時11分 (#645154) ホームページ 日記
       普段Mac OS Xなのですが、~/.Trashに移動させるエイリアスを作ろうかと思った事もありましたが結局rmの方が高速で安全だったのでゴミ箱はFinder専用にしてます。
       稀に「ゴミ箱を空にする」の動作でFinderが飛んだりするので、数が多い時はTerminal.app開いてrm -rfで直接消去する事もあります。

      #ゴミ箱は最終テンポラリなので普段空じゃないと嫌(笑
      --
      凛々しく、あほらしく。
      親コメント
  • by Anonymous Coward on 2004年10月29日 8時05分 (#644300)
    「xx以外をhogeする」オプションが欲しかったりするんだわ。lsにしても。
    自分でスクリプト組んで使ってますが、結構便利ですぜ。
  • これにより、「rm -iに関するマーフィーの法則」、

    • 間違いに気づくのは常に"y RET"を叩いた後である。
    に、新たに
    • globパターンを間違える時は、重要なファイル1つ乃至2つにマッチするように間違える。
    が加わるのですね? :-p

    てな減らず口を信じているかどうかはともかくとしても、個人的にはrmにはaliasつけない主義です。その手のaliasに慣れちゃうと、いざ他の環境に行った時失敗するのが怖いからとか、いくつか理由はあるのですが。

    とはいえ仮にこれを使うとして、.cshrcを他のホストと共用してる場合、「"-I"が使えるときだけaliasを設定したい」という要求は結構あるんじゃないかと思います。 そんな時、どう書くのが良いのでしょう。

    rm |& grep I > /dev/null && alias rm rm -I
    とかいう感じでしょうか(Usage出力利用)。 あるいは、cvsupのタイミングによっては切り分けられないだろうけど、 sysctl kern.osreldateで近似しとく方が普通なのでしょうか。

    結構この手の問題で毎度頭を悩ますんですよね。

    • * 間違いに気づくのは常に"y RET"を叩いた後である。

      なんですよねぇ。昔、某ワープロソフトの開発に関わっていた時、「削除の前に確認を求めるHCIはよろしくない」と上司に言ったのですが、受け入れられませんでした。ないよりマシだと思ったんでしょうけど、ないのとあんまり変わらないんですよね。ま、技術的にundoできるように作るのが難しかったという事情もあるんですが。

      しかし、そろそろどのOSでもファイル削除コマンドはundoできるのが標準の仕様にならんもんですかね。

      親コメント
  • by tag (10007) on 2004年10月29日 9時45分 (#644341) 日記
    僕個人としては使わないと思います。-i もそうなのですが、そういう ものに頼るのは良くないと思うからです。

    何かのコマンドを キー入力する時にはゆっくり注意して行います。rm コマンドを実行 したり * を指定する時は、その前に ls でそれを打ちこんで 何が選択されるか調べ、それをコピーすることで打ち間違えを しないように注意しています。

    皆さん、rm -fr abc * などと 入力して大変なことになったとよくおっしゃいますが、重大な コマンドを実行する時には、改行を打つ前に5秒ぐらい考えたら そういうことも少なくなると思います。

    今回の -I ですが、 初心者の非システム管理者には使えるかもしれないとは思います。

    • by tyuu (9154) on 2004年10月29日 10時35分 (#644386) ホームページ 日記
      ミスをするような状態の時に良く考えても駄目だと思います。
      ls を置き換えた方が良くないでしょうか?

      % ls abc *
      % ^ls^rm -rf
      親コメント
    • 疲れているときは 5 秒考えている間に寝てしまいそうです(笑)。

      ぼくは root で作業しているときなんかは、ワイルドカードをつかわないときにも、スペルミスがないかの確認のために -i オプションをつけることはありますね。スペルが間違っていれば確認メッセージがでないから、間違いに気づきます(笑)。
      --
      use Test::More 'no_plan';
      親コメント
    • >今回の -I ですが、初心者の非システム管理者には使えるかもしれないとは思います。

      初心者には難しいと思います。-Iの意味を理解できないでしょうし、-iと間違えやすい。そしてそもそも初心者は確認なんてしない。確認するようになったら中級者。

      #3年後にはBSDのトリビアになっちゃんうじゃないかなー。
      親コメント
  • by Anonymous Coward on 2004年10月29日 22時07分 (#644864)

    1. rm -rf

    2. rm -fr

typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...