X



root で rm -rf /

■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@お腹いっぱい。
垢版 |
NGNG
ネタとしては死ぬほど見かけるこれ、実際にした人は少ないと思います。
ぜひ一度はやってみましょう。

参考
ttp://www.sra.co.jp/people/katsu/doc/rmrf/
2006/01/06(金) 15:44:32
>>210
けっきょくそのスクリプトの方を常用してしまうだろう。
あと、/ だけが危険なわけではない。
2006/01/06(金) 18:27:16
むやみに rm に -f を入れる習慣も悪いよ。
特に -r の時は入れるべきじゃない。
ディレクトリ消すだけのときは rmdir を使い、
ファイル込みの場合は rm -r で、
それでパーミッションの警告が出るときだけ rm -fr にすべき。
2006/01/06(金) 20:36:53
ってか alias rm='rm -i' ってあまりいい習慣ではないんだな…。おれは長いことこれで通してきたんだが
確かに機械的にy押してしまう傾向があるのは否定できない。これは見直したほうがいいかもしれんね。

しかし mv, cp はデフォルトで -i 付けても問題ないというか、むしろそっちの方が安全だと思うんだがどうなんだろ。
-i しないと>>206みたいなのが怖いし、上書きするケースってそんなに多くないと思うんだけど。
2006/01/08(日) 00:13:51
ゴミ箱スクリプトを作ってaliasしてつかってる。
このスクリプトのバグで予想外のファイルが消えそうで少し恐い。
バックアップが一番か
215名無しさん@お腹いっぱい。
垢版 |
2006/01/08(日) 17:09:54
なんて低レベルな話題なんだろう
つーかそもそも人間が直接コマンド叩いてやるのが間違い
GUIでやれGUIで
2006/01/08(日) 17:16:02
釣れそうですね
217名無しさん@お腹いっぱい。
垢版 |
2006/01/08(日) 18:01:52
WindowsではPartitionMagicみたいな失敗したらヤバイ系のソフトには必ず
コマンド入力しても実際の操作をする前に「適用」みたいなボタンがあって、
それを押さない限り操作は確定しない
または処理フローを試すだけのテストが行えるようになってる
UNIXのコマンドにはそういった緩衝材や保険がないのがイカンということだよ
GUIでやれGUIで
2006/01/08(日) 18:08:20
正論だな。
2006/01/08(日) 18:25:21
それぐらい注意して出来ない奴がだめ。
俺も時々ミスるが・・・
2006/01/08(日) 18:27:15
fdisk だって最後の確認あるじゃん。
2006/01/15(日) 16:28:58
>>210
-fr ってファイルも置k
2006/01/15(日) 16:30:48
どっかの65万株を1円で売り出したシステム(略
2006/01/15(日) 20:55:45
MSDOS の癖でカレントディレクトリ表示→確認ok→rm -rf
ってやろうと思ったらゴミディレクトリ消さずにホームディレクトリ
消してしもうた。ディレクトリ名が出ない時点で止めれば良かったものを
あれ何も出ないやまあ良いか的なノリで消してしまった。
2006/01/16(月) 01:23:55
rm -i は駄目としても rm -v はやっておいた方が良くないか?
まあ単に一部のファイルは助かるかもってだけだが…
2006/01/19(木) 20:29:07
エラー出力が流れちゃう。
2006/01/23(月) 19:50:27
家庭用マシン、俺ユーザのMeta-jにWMの制御キー割り当ててるんだけど、suして

[/root]10# rm -rf / (←入力途中でWM操作しようとして、誤ってCtrl-jだかCtrl-mを押す)
rm: "/" may not be removed
[/root]11#

助かったわけだけど(>>151氏の話)
冬場かじかんだ指で死んだマシンが世界に何台あるだろうかとふと思った
寒い季節は気をつけようね…
2006/01/27(金) 20:06:05
バックアップファイル(hoge~, .hoge~, ...)を消すスクリプトを作ってみたんだが
こいつのバグの所為で悲惨なことになると困るのでちょいと見てやってはくれまいか

#!/bin/sh

RM='rm -v'

# デフォルトではカレントディレクトリが対象
target_dir=.

function usage
{
echo "Usage: $0 [target-dir]"
exit 1
}

if [ $# == 1 ]; then
if [ -d "$1" ]; then
target_dir="$1"
else
usage
fi
fi

find "$target_dir" -type f -and \( -name '*~' -or -name '.*~' \) -mindepth 1 -maxdepth 1 -exec $RM \{\} \;

ちょっと試してみた感じでは一応動いてるみたいなんだけど
シェルスクリプトはあまり慣れてないので不安だ。
228名無しさん@お腹いっぱい。
垢版 |
2006/02/04(土) 18:03:37
>>227
三田
2006/02/05(日) 01:32:49
>>227
-maxdepth とか -mindepth といったオプションは
判別式の前に持ってくる事を推奨する。

あと、-name を -regex '.*~$' にすると一つにまとめられるんじゃない?

find "$target_dir" -mindepth 1 -maxdepth 1 -type f -regex '.*~$' -exec $RM \{\} \;
2006/02/09(木) 17:49:19
>>229
レスありがとん。確かに -regex 使う方が簡潔ですね。
あと引数チェックが甘かったのとBashismに毒されてたのを修正。
-mindepth, -maxdepth を先頭に持ってくる理由はよくわからなかったですが
findの実装によっては効率が悪かったりするのかな?

#!/bin/sh

RM='rm -v'

target_dir=.

function usage
{
echo "Usage: $0 [target-dir]"
exit 1
}

if [ $# -eq 0 ]; then
target_dir=.
elif [ $# -eq 1 ]; then
if [ -d "$1" ]; then
target_dir="$1"
else
usage
fi
else
usage
fi

find "$target_dir" -mindepth 1 -maxdepth 1 -type f -regex '.+~$' -exec $RM \{\} \;
2006/02/10(金) 03:15:43
>>230
>-mindepth, -maxdepth を先頭に持ってくる理由

man find からの受け売りだよ。
ttp://www.linux.or.jp/JM/html/GNU_findutils/man1/find.1.html

> 全てのオプションは常に真を返す。また全てのオプションは常に効力を持ち、
> 式の評価がオプションの位置に到達したときにのみ実行される訳ではない。
> 従って記述を明確にするためには、全てのオプションは評価式の先頭部に
> まとめて置くのが望ましい。

2006/02/12(日) 01:49:01
#!/bin/sh
$dir="$HOME/temp/*"
rm -rf $dir

perl使った直後にシェルスクリプト組んだ場合にrm -rf /* を実行しかけ、
冷や汗を掻いた。(2行目の変数のところが誤っていた)
このときは echo で実行内容を予め確認しておいて助かった。
職場のワークステーションだったので、
プロジェクトを潰すor遅延を生じさせるところだったよ・・・
2006/02/12(日) 01:55:16
ごめん232だけど書き間違い
正しくは↓

#!/bin/sh
$dir="$HOME/temp"
rm -rf $dir/*

皆様、気をつけてください〜〜
2006/02/12(日) 02:04:53
怖いからWindowsのような“ごみ箱”を作っていますが、
そういう方は結構いらっしゃるのでしょうか?
(ごみ箱の中はcronで定期的に削除)



2006/02/12(日) 02:09:12
単一ファイルを間違って消すよりも、
rm -fr で意図しない削除をして失敗することのほうが多そうだ。
2006/02/12(日) 02:37:43
ドットファイルをまとめて消すにはどうしたらいいのだろうか?
2006/02/12(日) 11:54:16
めんどーだから rm .* ってやればどっと消えるよ
2006/02/12(日) 12:03:57
「どっと」消えるよ
2006/02/12(日) 12:11:03
rm -rf .[!.]*
2006/02/14(火) 06:29:37
>>239
..erophoto が消えません!><
2006/02/14(火) 06:37:22
すみません、
rm -rf * .[^.]* ..?*
と3つ消せばよさそうです!><
242名無しさん@お腹いっぱい。
垢版 |
2006/02/16(木) 22:47:15
あちゃ〜(ノ∀`)

いま、ちょうどやっちまったよ… rm -rf bin しようとしたら rm -rf /bin

だははは ls すらできねぇ
もういいや、再インストールだゲラゲラ
2006/02/17(金) 02:22:13
こういう場合の復活のしやすさってOSによるよね。
配布イメージが細かくパッケージに分かれてるOSだと面倒だから
再インストールする方が早いかも。
*BSDなんかは簡単なんじゃが。
2006/02/17(金) 07:00:40
>>243
逆だろ。*BSDだと、OS基本部分がパッケージ管理されていないから
どのファイルが消えたか確認するのも大変。
しかも、インスコCDでブートした時のシェル環境が貧弱。
SolarisまたはLinuxなら、OS基本部分もパッケージ管理されてるし、
インスコCDでブートした時のシェル環境が便利だから、
CDブートして、HDDマウントして、パッケージ復元すればいいだけ。
245名無しさん@お腹いっぱい。
垢版 |
2006/02/17(金) 10:46:15
*BSDのほうが面倒?/bin が消えたってわかってるんなら
インストールCDの/binの部分を書き戻したらおわりじゃん。

2006/02/17(金) 11:04:28
>>243 >>245 は、*BSD以外のパッケージシステムに慣れてないだけ。
慣れればパッケージの方が楽。
今時分割tar.gzを手動展開する方が時代遅れ。
2006/02/17(金) 12:43:44
>>242
運が悪かったな
おれは先ほど rm -rf tmp/ のつもりが rm -rf /tmp したけど無問題だったぜアヒャヒャ
2006/02/17(金) 12:55:29
/binのリカバリだよね。
/binにどのパッケージが書くのかをみて対象をパッケージ追加するの?

時代遅れかどうかはともかく、bin.rpm なんてものが存在しなきゃ
tgzでいいんじゃマイカ?
2006/02/17(金) 14:02:16
そうか、慣れると
tar zpxf /mnt/usr/DIST/base.tgz -C /mnt ./bin
よりも簡単に復旧できるのか。
超強力なパッケージシステムだな。
ぜひ、その手順を教えてくれ。
上のコマンド一発より短いんだから、ここに手順を
貼るのも簡単だろ。(w
2006/02/17(金) 15:43:36
>>249
それ、NetBSDか? FreeBSDだとbase.aa base.ab ... に分割されてるわけだが。
しかも、RELEASE版に戻してしまっていいならそれでもいいが、
STABLEとかで、自分でmakeしたバイナリだと、それでは戻せないだろ。

やはり、baseも含めて何らかのパッケージ管理をするべき。
2006/02/17(金) 16:11:27
> それ、NetBSDか? FreeBSDだとbase.aa base.ab ... に分割されてるわけだが

FreeBSD でも
cat /mnt/usr/DIST/bin/bin.?? | tar zpxf - -C /mnt ./bin
で済むから、10文字増えるだけだよ。

> しかも、RELEASE版に戻してしまっていいならそれでもいいが、
> STABLEとかで、自分でmakeしたバイナリだと、それでは戻せないだろ。

自分で make する時に、配布イメージまで作る習慣をつけておけば無問題。
(俺はそうしてる)
そうしてない限り、パッケージ管理してたって駄目。

てゆうか、上のコマンドより少ない手間で済むパッケージシステムなんて
あるの?
2006/02/17(金) 17:15:54
単純なシステムのほうが修復しやすいよな。
2006/02/17(金) 17:53:07
tar だと atimeが復元できないからヤダ。
2006/02/17(金) 18:45:01
配布ファイル中の atime は復元できるでしょ。

それとも、そのマシン上でアクセスされた時刻って意味?
だったらバックアップを使った restore が必要だねえ。
その場合は tar じゃなくてパッケージシステムの場合も駄目だねえ。
2006/02/17(金) 20:20:16
とりあえず、RPM や deb や portage の場合、どうやって復旧するのが
いいのか、いまどきのパッケージシステムを使ってる人に教えてほしい
なあ。tar より簡単でなきゃヤダなんて無理は言わないからサ。

まさか、再インストール以外に方法がないなんてことはないよねえ。(w
2006/02/17(金) 22:31:39
何この馬鹿?
257名無しさん@お腹いっぱい。
垢版 |
2006/02/17(金) 23:23:58
>>244>>246 はどこに消えたの?
嘘がバレて出てこれなくなった?

時代の先端をいくパッケージ復元方法キボン
2006/02/17(金) 23:48:24
ごめんなさい。
259名無しさん@お腹いっぱい。
垢版 |
2006/02/18(土) 00:31:44
素直に謝ったか。よしよし、許してつかわすぞ。
2006/02/18(土) 00:32:27
何この馬鹿?
2006/02/18(土) 01:36:19
>>242 でつ
この際、最低限のものを/homeとかにもコピっときますた。
cp ls mv tar これだけあればなんとか復帰可能…かなw
2006/02/18(土) 08:47:18
>>257
知りたいならそんな言い方したら教えてくれなくなるぞ。
素直に「教えてください」と言え。
あと、板違いなので犬板で聞くかググるかすれば答えは見つかる。

# あと、ら抜きやめろよな。
2006/02/18(土) 08:54:31
>>254
tarってatime記録されてたっけ?
dumpやcpioなら記録されてるけど。
まあ、atimeなんて戻してもしょうがないが。
2006/02/18(土) 15:57:05
実験1
cd /home
rm -rf .*

これで / 以下全て消滅。但し、HPなら rm が .. をはじくように
なってるので無問題のはず。Sunは不明。

実験2
マウントディレクトリのトップで、

unlink .

fsdb が使えれば修復できるが。Linuxはヤバいかもよ。
2006/02/18(土) 16:31:14
tar はアホだからディレクトリの更新時刻が
全て現在に変わってしまったはず。
find -depth | cpio ならきれいに復元してくれる。
しかも tar はパス名100バイトまでしか保障されない。
cpio は1024バイトまで。プロなら tar は使わない。
2006/02/18(土) 20:51:18
Windowsだけど、あるシェアウェアのバグでC:ドライブのルートから
ごっそり削除されたことがある。
tempフォルダ内のゴミを削除するルーチンが暴走したらしい。

バックアップとってたから被害少なかったけどショックだったなぁ。
2006/02/18(土) 22:34:59
> あと、板違いなので犬板で聞くかググるかすれば答えは見つかる。

この一行の返答の方が、>>249>>251 のコマンドラインよりも
長いってところが笑えるな。結局 >>244>>246 は嘘つきケテーイ
ってことか。
2006/02/18(土) 23:15:52
Linux 系の場合、/bin だけ復旧するようなうまい手はないのか、
それとも、方法はあるけど、ここには貼れないくらい手順が長いのか、
どちらなのかな。

ここに貼れないくらい長くても、もしも >>262 の言うことが正しくて、
ググれば答が見つかるのであれば、ググった結果の URL を貼ること
くらいは簡単にできるよなあ。

>>261 はどうやって復旧したの?
2006/02/19(日) 02:31:55
パッケージシステム作るときに
/bin 消したときの復元しやすさまで考える必要ってあんの?
2006/02/19(日) 03:31:45
OS を作るときには、障害が起きた時の復旧のしやすさを考えた方が
いいとは思うよ。
今回みたいなオペミスだけでなく、システム管理用に作ったスクリ
プトのバグとか、ハードウェアの障害とかで同じようなことが起きる
ことはあるから。

対処方法として、パッケージシステムで頑張るか、それとも他に
手段を用意するかは、どちらでもいい話。
実際、上で出ている *BSD での解は、OSの基本部分とそれ以外を
分けて、OSの基本部分についてはパッケージシステムを使わずに
回復できるようにするってやり方なわけだし。
2006/02/19(日) 03:49:28
/bin に限ってるから調子に乗る馬鹿がでてくる。
/usr/bin とか消した時の議論もしろよ。
2006/02/19(日) 04:05:27
/usr/bin でも同じじゃね?
*BSD の場合、/usr/bin には OS の基本部分に属するコマンド
しか入らない (パッケージは別の場所にインストールされる)
から、手順は >>249>>251 の延長線上でしょ。
2006/02/19(日) 18:39:30
/etc を消したのならともかく /bin /sbin /usr/bin /usr/sbinを消しても、CDなりからすぐに簡単に戻せるよなぁ。

>STABLEとかで、自分でmakeしたバイナリだと、それでは戻せないだろ。
たかがSTABLEだったら/usr/srcをチェックアウトしてmakeしなおせばええやん。
2006/02/20(月) 00:17:21
バックアップネタならバックアップスレでやってよ
スレ (´∀`( ´∀`) チガイ
でも、もまえらなかなか参考になる技をお持ちですな
2006/02/25(土) 22:53:06
>>273
/bin なしで make ができるのかと小一時間(ry
2006/02/26(日) 03:32:49
/etc を消したのならともかく /bin /sbin /usr/bin /usr/sbinを消しても、CDなりからすぐに簡単に戻せるよなぁ。
2006/02/26(日) 03:40:15
パッケージ管理されてるところを中途半端に消されると
確かに復活は面倒だね。
データベースはあるんだから消えてるファイルだけを復活させる仕組みも
作れば作れるんだろうが。
2006/03/10(金) 00:11:05
ってか素直に cron でテープアーカイブつくっとけよ。
きょーび HDD の値段なんかたかがしれてるだろ
2006/04/05(水) 16:49:10
FreeBSDなら、/rescueの中に色々入ってるからCDから起動する必要もないね
2006/04/05(水) 22:06:59
あれっていろいろあるように見えるけど、ddとかで直接ダメージを与えたりすると
まずくね?
281名無しさん@お腹いっぱい。
垢版 |
2006/05/07(日) 12:07:05
LFSなら削除したファイルの復旧が簡単そうに思えるけど、どうなんだろ
282名無しさん@お腹いっぱい。
垢版 |
2006/09/26(火) 23:08:32
あるディレクトリに -i と -rf ってファイルを置いたけど何も変わらなかったよ
2007/06/08(金) 01:17:19
保守
2008/01/15(火) 00:09:05
>>247
昨日
あやまって
rm -rf */tmpと意味不明なことをやってしまい

カレントディレクトリー内のデータがあぼん
2008/07/25(金) 01:09:58
From: [656] 名無しさん@お腹いっぱい。 <sage>
Date: 2008/07/02(水) 12:54:18

カナーリ昔々の話、お茶の水三省堂のコンピュータ書籍売り場でUNIX本を物色してたら、
大学生風のガリ青年とキモデブ青年の2人がやってきた。

ガリ青年がBASICの入門書を手に取ったら(98/88の時代だからね)、
キモデブが素頓狂な大声で
「えー!!BASICなんかダメだよぉ、構造化できないし!インタプリタだし!
 最低でもFORTRANを使わないとぉ!」
と絶叫した(ツバがかなり飛んでた)

フロアにいた人達は生暖かい目でキモデブを観察。ガリ青年は恥ずかしそうに
「ちょ!大声だすなよ〜恥ずかしいだろ〜みんなこっちを見てるよ〜」
と小声で抗議してた。

>>1-1000はちょっとそんな感じ?
2008/10/27(月) 17:59:26
http://www.nicovideo.jp/watch/sm2278996
とりあえず貼っておく
2010/03/07(日) 09:27:47
先日会社の同僚が rm -rf / やっちまったよ…
おかげでテストが1日遅れ
2010/07/13(火) 16:15:58
このご時世に、そういうコマンドが残ってるのは
おかしいように思えてきた
2010/07/13(火) 16:30:19
このご時世にバックアップすらとってないのか?
290名無しさん@お腹いっぱい。
垢版 |
2011/07/17(日) 07:20:20.08
       /::.::.::.::.::.:/::.::.::.::.::.::.::ヽ::.::.::.::.:| : : : :
       /::.::.::.::.::.::.:/::.::.::.::.::.: /!::.:: l::.::.::.::.:| : : : :
     ..::.::.::.::.::.::.::.::/:./:.::.::.::/:〈 |::.::.:|::.::.::.::.:| : : : :   
    /::.::.::.::.::./::.::./イ::.::.::.:/:/ Y::.::.|::.::.::.::.:| : : : :
    ::.::.::.::.::./::.::.;'  |::.::.::.,':/l  :.::.::| 、::.::.::.| : : : :
   l::.::l::.::.::.::.::./  |::.::.{/    \| \::.:| : : : :
   |::.::|::.::.::{::./l   人::.::.| u  yぅ笊_.:::| : : : :
   |::.::|::.::.::∨ ィ笊ぅ\|     んxハ 》:j : : : :  ひい〜っ!
   ∨ハ::.::.::.:.. 《 {xぃ}      ヒ辷ツ  | : : : :
      八::.::.::.ハ  ゞー′            | : : : :
        \::.::.| , ,   ′     ' ' '   | : : : :
       |\j      __     し /| : : : :
       |:: 八    /ー─ ヽ     /::.| : : : :
       |::.::.::.\   {_, - 、__ノ    /::.::j : : : :
       |::.::.::.::.::.丶__       イ::.::.:| : : : :
        ::.::.::.::.::.::/ ノ─ァー<   |.::.::.:| : : : :
         ∨::.::./7 / / /_)   /|.::.::.:| : : : :
        ∨:Y/ /  {/ / -r<  |::.::.:;| : : : :
2011/07/17(日) 10:20:31.60
君だれ子ちゃん?
2011/08/03(水) 18:01:27.30
cp -rf /
2011/10/13(木) 23:09:20.45
一生に一度はやりたい rm -rf /

でも今時は仮想マシンとかあるし大した話でもないよな
2011/10/13(木) 23:13:44.39
そして、仮想マシンに実マシンからNFSマウントしたまま rm -rf / やると。
2011/11/19(土) 23:54:58.32
すきなだけできるしね
296名無しさん@お腹いっぱい。
垢版 |
2011/12/02(金) 14:38:24.22
一般ユーザで rm -f * の方が被害がある
297名無しさん@お腹いっぱい。
垢版 |
2011/12/24(土) 18:05:18.32
rm -rf / じゃ面白くないな。

マウントしたまま /をmkfs(newfs)とか、
/のデバイスに/dev/zeroをddとか、
そういう実験報告を頼む!
2011/12/25(日) 19:30:21.75
自分でやって報告しろよ。
2012/01/03(火) 06:24:48.49
イライラしたら仮想PCでやってスッキリしてるわ
イメージさえ取っておけばやり放題
2012/01/03(火) 09:24:41.25
>>299
当然、仮想マシンに実マシンからNFSマウントしたまま rm -rf / やってるんだよな?
2012/01/03(火) 16:23:52.90
>>300
いやいやいやいや
2012/02/21(火) 15:22:35.57
やってまたらスッキリした
2012/08/08(水) 19:21:36.51
現行のOSに付属のrmコマンドで rm -rf / が本当に実行できるのってないでしょ。
実際にはエラーにされるよ。
試したって言ってる人、どうやって実行した?
rm -rf /../ とかにするとエラー回避できるのかな?
2012/08/09(木) 18:44:11.18
strictにrm -rf /そのままじゃなくて、オプションや環境変数追加していいなら方法あるよ。
GNUのならrm -rf -no-preserve-root /とか。
FreeBSDのならPOSIXLY_CORRECT環境変数をセットするとか。
305名無しさん@お腹いっぱい。
垢版 |
2013/01/18(金) 15:47:28.29
rm -rf /*は問題なく実行される
2013/01/19(土) 20:22:18.24
ホームディレクトリでrm -rf .なら先月やった。
2013/01/21(月) 22:15:24.56
最近のUNIXでは>>305も使えないよ
2013/01/26(土) 21:54:28.68
嘘つけアホ
2013/01/26(土) 22:02:12.78
だから、それは最近のUNIXの機能じゃなくてbashの機能でしょ。
2013/01/26(土) 22:12:05.94
_人人人人人人人_
> bashの機能 <
 ̄Y^Y^Y^Y^Y^Y ̄
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況