2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

root で rm -rf /

1 :名無しさん@お腹いっぱい。:02/03/03 21:54.net
ネタとしては死ぬほど見かけるこれ、実際にした人は少ないと思います。
ぜひ一度はやってみましょう。

参考
ttp://www.sra.co.jp/people/katsu/doc/rmrf/

2 :名無しさん@お腹いっぱい。:02/03/03 21:57.net
今だ!2ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ

3 :名無しさん@お腹いっぱい。:02/03/03 21:58.net
やってどうすんのよ?www
けど実際にやってみたやつがいるとわ。。

ーーーーーーーー終了ーーーーーーーーーーーーー

4 :名無しさん@お腹いっぱい。:02/03/03 21:59.net
http://www.sra.co.jp/people/katsu/doc/rmrf/freebsd/log.txt

↑実際に実行したアフォのコンソール出力

5 :名無しさん@お腹いっぱい。:02/03/03 22:02.net
>>1
自分に実行しろ

6 :名無しさん@お腹いっぱい。:02/03/03 22:02.net
rm -rf >>1

7 :名無しさん@お腹いっぱい。:02/03/03 22:03.net
VMware でやれ。

8 :名無しさん@お腹いっぱい。:02/03/03 22:06.net
VMwareでやるならNon-persistentモードでやれば
何度でも rm -rf / の実験が手軽にできるよ。

9 :名無しさん@お腹いっぱい。:02/03/03 22:09.net
オレやったことあるよ。Vine 1.1で。

XEmacsコンパイルして、展開したソース消そうとして、

% rm -fr XEmacs(スペース)/

ってやっちゃったの。やけに時間かかるな。あれっ?ひょっとして..
で、あわてて止めたけど、もう ls も cd も無かった。
Windows パーティションも巻き添えになって綺麗に消えてきれました。

当時は知識がなかったので、仕方なく始めから入れ直したけど、
FDで起動していろいろ調べれば面白かったかもね。
犬厨だった2年ほど前の事でした。

#今も厨だけどね。

10 :名無しさん@お腹いっぱい。:02/03/03 22:11.net
(´-`).。oO(rm .*~ しようとして rm .* したことがあったなぁ)


11 :名無しさん@お腹いっぱい。:02/03/03 22:14.net
rm -rf /
とrootでやろうとすると
laser5linux
でやると効かないよ
いやね
ほかもそうかな

12 :名無しさん@お腹いっぱい。:02/03/03 22:32.net
オレのパソコンNECだけど、試しにやってみたら、不要ファイルが消えて
パソコンの調子が良くなったよ。みんなも一度はやってみなよ。

13 :名無しさん@お腹いっぱい。:02/03/03 22:33.net
>>10

俺もある...
これ以降findでゴニョゴニョとするようになった


14 :名無しさん@お腹いっぱい。:02/03/03 22:47.net
やった人ほんとに少ないかな?
だれでも一度はやることではないかと。
ちなみに2度やった人を攻めるつもりもありません。

15 :名無しさん@お腹いっぱい。:02/03/03 22:58.net
自慢じゃないけど、UNIX歴10年以上だけど、
# rm -rf /
や、それに類することは一度もやったことない。

rm とはちょっと違うけど、
CDPATHを設定していて、
cd 時に意図とは違うディレクトリに移動してしまい、
その違うディレクトリ上でファイル操作を行なってしまって
混乱したことがあった。
それ以来 CDPATH の設定をやめた。
また、シェルの各種の「便利な機能」も誤操作の元なので、
できる限り設定を外して使わないようにした。

16 :名無しさん@お腹いっぱい。:02/03/04 01:14.net
root で rm の入力ミスはやばいので、
rm の option 引数全部書いてから
行頭に戻って sudo 書いて実行してます。

17 :PC初心者:02/03/04 08:14.net
単純な疑問です。なぜOSやコマンドが消えているのにプロセスが停止しないのでしょう?
メモリにプログラムやOSがすでに格納されているから? と思っているのですが。

18 :名無しさん@お腹いっぱい。:02/03/04 08:22.net
man 2 unlink

19 :名無しさん@お腹いっぱい。:02/03/04 08:41.net
>>17
その状態においてスワップしたらとまるUNIX多いです。
(カーネルだけあるけど何も動かん状態)
とまらなかった、という解もあるけれども、
必ずしもそれが一般解ってわけでもありません。

その訳に気付け もっとOSと対話しろ

20 :厨房:02/03/04 09:57.net
誰か rm をハックして rm -fr / とできないパッチを公開して下さい

21 :名無しさん@お腹いっぱい。:02/03/04 10:16.net
つーか、i オプション使えばいいのでわ?

22 :うひひ:02/03/04 10:23.net
>>20
大概のUNIXにはGENZINAという機能があり
aliasというコマンドを使って味噌

つかな早い安いでかいの大容量HDD時代なんだからrmなんて
使わないで自分でごみ箱プログラム作っておくのが常識最強
恐ろしく忘れたころごみ箱掃除すりゃいいんだよ

23 :作ってみた。:02/03/04 13:26.net
#!/bin/sh

MSG1=そのようなファイルやディレクトリはありません。
MSG2=ごみ箱の中身を表示します。
MSG3=ごみ箱の中身を消去します。
MSG4=このプログラムはごみ箱を使うためのプログラムです。

DATE="$(date +%y%m%d-%H%M%S)"
TRASH=Trash

if [ -d ~/"$TRASH" ];then
:
else
mkdir ~/"$TRASH"
fi

case $1 in
-s | --status ) ls -A ~/"$TRASH"/
;;
-d | --delete ) rm -rf ~/"$TRASH"/*
;;
-h | --help )
echo " -s --status : $MSG2"
echo " -d --delete : $MSG3"
echo " -h --help : $MSG4"
;;
esac

if [ -e "$*" ];then
mv "$*" "$*$DATE"
mv "$*$DATE" ~/"$TRASH"
fi

はじめて組んだスクリプトなんでつっこみキボンヌ
もうちょっと詰めたい所があるけどとりあえずこれだけ。

24 :作ってみた。:02/03/04 13:31.net
やりたいこと、

その1、せっかくMSG1とかにしてるので
環境変数あたりで英語のメッセージをだせるようにしたい。

その2、ごみ箱に移動させるときの引数が"$*"だと
複数のディレクトリを同時に処理できないのでなんとかしたい。

その3、その2の処理のときにエラーメッセージもだしたいが、
caseの"$1"と処理の"$*"でぶつかってしまうのでそれをなんとかしたい。

って、こんな簡単なスクリプトで1時間以上なやむなんて…(鬱

25 :うひひ:02/03/04 13:46.net
>>24
マシンに力があるなら圧縮を取り入れるとファイルも1個になりで吉
a=${a:-`date '+%y%m%d_%H:%M:%S'`}
lha a /mnt/sys.login/ゴミ箱/"$a"back.lzh $*
\rm -R $*

圧縮は好みで選択。複数なデレクトリやファイルでもダイジョブだろ


26 :名無しさん@お腹いっぱい。:02/03/04 14:19.net
いつから
>#!/bin/sh

> DATE="$(date +%y%m%d-%H%M%S)"
なんてことができるようになったんだ。知らなかった…。

27 :作ってみた。:02/03/04 14:31.net
だめだーーー(涙
if [ -e "$*"];then が原因だったっぽい。

ってことで

if [ -e "$*" ];then
mv "$*" "$*$DATE"
mv "$*$DATE" ~/"$TRASH"
fi



tar -cvf ~/"$TRASH/back-$DATE.tgz "$*"
rm -R "$*"

に修正でっす。

うひひさんありがとー♪

28 :名無しさん@お腹いっぱい。:02/03/04 14:37.net
>tar -cvf ~/"$TRASH/back-$DATE.tgz "$*"

俺も厨なんであれだがこの行おかしくね?


29 :作ってみた。:02/03/04 14:41.net
あ、>>26さん。
僕はlinuxなんで/bin/shはbashです。
でも、ashでもできましたよ?(たった今確認)

むー、今度は case文のところでエラーがでたぞ(汗
(27の修正で…)


30 :作ってみた。:02/03/04 14:46.net
>>28
おかしいっす。
「"」の数があってない(藁

31 :作ってみた。:02/03/04 15:06.net
一応完成かな?

#!/bin/ash

case $LANG in
ja_JP*)
MSG2="ごみ箱の中身を表示します。"
MSG3="ごみ箱の中身を消去します。"
MSG4="このプログラムはごみ箱を使うためのプログラムです。"
;;
*)
MSG2="Show files in TRASH BOX"
MSG3="Delete files from TRASH BOX"
MSG4="This program is to use TRASH BOX"
;;
esac

DATE="$(date +%y%m%d-%H%M%S)"
TRASH=Trash

if [ -d ~/"$TRASH" ];then
:
else
mkdir ~/"$TRASH"
fi

case $* in
-s | --status ) ls -A ~/"$TRASH"/
;;
-d | --delete ) rm -rf ~/"$TRASH"/*
;;
-h | --help )
echo " -s --status : $MSG2"
echo " -d --delete : $MSG3"
echo " -h --help : $MSG4"
;;
*)
tar -czf ~/"$TRASH"/back-"$DATE".tgz $*
rm -R $*
;;
esac

32 :名無しさん@お腹いっぱい。:02/03/04 15:08.net
ちなみに、alias で rm -i とオプションを付けるのは却って危険です。
絶対にやめましょう。

33 :nana4:02/03/04 15:19.net
初心者だったころ,

# rm -fr /etc

をやったことある. 再起動もできなくなった.
諦めて再インストールした.

34 :名無しさん@Emacs:02/03/04 15:21.net
>>29
SunOS[45] の /bin/sh じゃできんよ。
ksh あたりが由来の拡張機能じゃないかね?


35 :厨房:02/03/04 15:32.net
オセマ
ナクタ
| | |
ニスリ

36 :名無しさん@お腹いっぱい。:02/03/04 15:37.net
作ってる奴に質問なんだが
-s オプションってtgzファイルが一個見えるだけで
何の意味もないんでない?
lsを使うんじゃなくて"tar tvf ゴミ箱のなかのファイル"
っていうふうにするんでは?
というかすでに$TRASH はディレクトリである必要もないし。

ところで圧縮書ける時のtarのオプションおかしくね?
ファイルを追加する場合はcじゃなくてrでなかった?


37 :作ってみた。:02/03/04 16:04.net
>>34
つかえないshもあるってことですね。
肝に命じておきます。

>>36
いちおう最初の予定でそのままmvするはずだったので、
ls -A になってますた。そのために秒数までfile名に埋め込んだので…
何時ごみ箱にほうりこんだか分れば良いかなと…
あとは、時間からほうりこんだfileを予測して、
わからない分はtar -tzf hogeで確認ってことで?
駄目っすか?(汗

そんな感じで r じゃなくて c にしました。

でも、36さんのやつの方が良さそうなので書きなおしてみまっす。


38 :36:02/03/04 16:06.net
あ、元作者さん居たのか。
居ないのかとおもって書き直し始めてたのに。

まぁ書き直してくれるなら任せよ。
一度gunzipしてからtar rしないといけないのが
微妙に面倒くさい感じ。


39 :36:02/03/04 16:26.net
任せるつもりが完成してしまったんではっとく

#!/bin/sh

case $LANG in
ja_JP*)
MSG2="ごみ箱の中身を表示します。"
MSG3="ごみ箱の中身を消去します。"
MSG4="このプログラムはごみ箱を使うためのプログラムです。"
;;
*)
MSG2="Show files in TRASH BOX"
MSG3="Delete files from TRASH BOX"
MSG4="This program is to use TRASH BOX"
;;
esac

DATE="$(date +%y%m%d-%H%M%S)"
RECYCLE=trash.tar

if [ -w ${RECYCLE}.gz ];then
gunzip ${RECYCLE}.gz
fi

case $* in
-s | --status )
tar tvf $RECYCLE
gzip $RECYCLE
;;
-d | --delete )
rm $RECYCLE
;;
-h | --help )
echo " -s --status : $MSG2"
echo " -d --delete : $MSG3"
echo " -h --help : $MSG4"
;;
*)
tar rf $RECYCLE $*
gzip $RECYCLE
rm -r $*
;;
esac


40 :36:02/03/04 16:36.net
しまった。-s オプションが与えられた時の処理を

-s | --status )
if [ -r $RECYCLE ]; then
tar tvf $RECYCLE
gzip $RECYCLE
else
echo "$MSG5"
fi

にしないと-dした後におかしな動きになるわ。


41 :作ってみた。:02/03/04 16:42.net
こうなりました。
ん〜、case文のなかにif文…
美しくない…

#!/bin/ash

case $LANG in
ja_JP*)
MSG2="ごみ箱の中身を表示します。"
MSG3="ごみ箱の中身を消去します。"
MSG4="このプログラムはごみ箱を使うためのプログラムです。"
;;
*)
MSG2="Show files in TRASH BOX"
MSG3="Delete files from TRASH BOX"
MSG4="This program is to use TRASH BOX"
;;
esac

TRASH=DustBox

case $* in
-s | --status ) tar -tzvf ~/"$TRASH"
;;
-d | --delete ) rm -rf ~/"$TRASH"
;;
-h | --help )
echo " -s --status : $MSG2"
echo " -d --delete : $MSG3"
echo " -h --help : $MSG4"
;;
*)
if [ -f ~/"$TRASH" ];then
tar -rzf ~/"$TRASH" $*
else
tar -czf ~/"$TRASH" $*
fi
rm -R $*
;;
esac

あとは取り出しをどうするかだな。
できれば組み込みたい。。。

42 :36:02/03/04 16:47.net
>>41
tar rzf って可能?
うちの環境ではエラー吐いたんだけど。

バージョンはこんな感じ
> tar --version
GNU tar version 1.11.2

あと、取り出しよりも前に引数がなかった場合に
エラーメッセージ出したいんだけど、どうすればいい?
シェルスクリプト書いたことなくてよくわかんね。


43 :作ってみた。:02/03/04 17:00.net
rzfはこっちの環境でか可能です。

tar (GNU tar) 1.13.17

debian GNU/linux のpotatoなんで結構古いはず。
って。woodyもそんなにかわらん
tar (GNU tar) 1.13.25 (woody)


44 :名無しさん@お腹いっぱい。:02/03/04 17:08.net
これって、TRASH にファイルを突っ込むソフトはどれ?


45 :44:02/03/04 17:10.net
ごめん、よく読んだら組み込んであった


46 :36:02/03/04 17:13.net
Debian はいけるのか。俺、FreeBSD だからなぁ
とりあえず、引数のチェックを入れてみた
こんなもんでどうだろう?

#!/bin/sh

case $LANG in
ja_JP*)
MSG2="ごみ箱の中身を表示します。"
MSG3="ごみ箱の中身を消去します。"
MSG4="このプログラムはごみ箱を使うためのプログラムです。"
MSG5="ごみ箱は空です"
;;
*)
MSG2="Show files in TRASH BOX"
MSG3="Delete files from TRASH BOX"
MSG4="This program is to use TRASH BOX"
MSG5="TRASH BOX is empty"
;;
esac

RECYCLE=$HOME/.recycle.tar

if [ ! $1 ]; then
echo "use -h for help"
exit
fi

case $* in
-s | --status )
if [ -r $RECYCLE ]; then
tar tvzf $RECYCLE
else
echo "$MSG5"
fi
;;
-d | --delete )
rm $RECYCLE
;;
-h | --help )
echo " -s --status : $MSG2"
echo " -d --delete : $MSG3"
echo " -h --help : $MSG4"
;;
*)
if [ -w ${RECYCLE}.gz ]; then
gunzip ${RECYCLE}.gz
tar rf $RECYCLE $*
else
tar cf $RECYCLE $*
fi

gzip $RECYCLE
rm -r $*
;;
esac



47 :作ってみた。:02/03/04 17:20.net
お、良い感じ。


48 :作ってみた。:02/03/04 17:25.net
んで、良くわからんのが
たとえば
$dust -g [file1 file2]
としたときに、スクリプト側でどんな風に引数わたしたら
良いかわかんない(汗

この場合 dust がこのスクリプトで -g が get でfileの取り出しを
する引数、んで、第2引数以下を取り出すfile名にしたいんだけど…

49 :36:02/03/04 17:52.net
>>48
ちょっと調べてみたけど引数は$0〜$9までで
$0はコマンド名、$1がオプションとなると8個までしか
同時にファイルを指定できないんだよね。

$2〜$9を並べれば一応できるけどちょっと不便・・・。
もっと詳しい人降臨希望。


50 :作ってみた。:02/03/04 18:01.net
ちょと訂正あり。
case $* in
-s | --status )
if [ -r ${RECYCLE}.gz ]; then
tar tvzf ${RECYCLE}.gz
else
echo "$MSG5"
fi
;;
-d | --delete )
rm ${RECYCLE}.gz
;;
{}.gzが抜けてますた。



51 :作ってみた。:02/03/04 18:03.net
ん〜、shiftで行けるのかな?
こんな感じで。

#!/bin/sh

case $1 in
-r ) shift
echo "get $*"
;;
* )echo "end"
esac
exit 0

どうだろう?

52 :名無しさん@お腹いっぱい。:02/03/04 18:09.net
どうも、
for $hoge in $@
do
$hoge
done
ですべての引数を処理できるらしい


53 :36:02/03/04 18:10.net
>>50
その通りでした。訂正さんくす!


54 :36:02/03/04 18:25.net
取り出しを組み込んでみたよ。

ln -s dust recycle
した上で使ってくれ。

#!/bin/sh

TRASH=$HOME/.trash.tar
TMPDIR=/tmp
MYNAME=`basename $0`

(中略)

if [ $MYNAME = "recycle" ]; then
if [ -r ${TRASH}.gz ]; then
tar xvzf ${TRASH}.gz -C $TMPDIR

for file in $1 $2 $3 $4 $5 $6 $7 $8 $9
do
cp ${TMPDIR}/$file .
done
else
echo "MSG5"
fi

exit
fi

(後略)


55 :36:02/03/04 18:28.net
ゴミ箱にいくつも同じファイル名のファイルがあった場合や
引数が多すぎた場合の処理だとか、TMPDIR の後始末が課題になるな


56 :作ってみた。:02/03/04 18:33.net
なんか投稿できてなかったぽいのでもう一度。

前略
case $1 in
-s | --status )
if [ -r ${RECYCLE}.gz ]; then
tar tvzf ${RECYCLE}.gz
else
echo "$MSG5"
fi
;;
-d | --delete )
rm ${RECYCLE}.gz
;;
-g | --get )
shift
tar zxvf ${RECYCLE}.gz $*
後略
exit 0
これでどうかな?

>>54
いきなり難しくなった(藁
ちょっとman読むね。

57 :36:02/03/04 18:39.net
>>56
ノォォォォッ!!
tar xvzf hoge.tar.gz ファイル名
でファイルが取り出せるなんて
UNIX使い始めて4年目にして初めて知った!(激恥

#!/bin/sh

TRASH=$HOME/.trash.tar
MYNAME=`basename $0`

(中略)

if [ $MYNAME = "recycle" ]; then
if [ -r ${TRASH}.gz ]; then
tar xvzf ${TRASH}.gz $@
else
echo "MSG5"
fi

exit
fi

(後略)

コレだけでよかったのか?

こんなの考えてたのに・・・。
mkdir ${TMPDIR}/$$
tar xvzf ${TRASH}.gz -C ${TMPDIR}/$$

for file in $1 $2 $3 $4 $5 $6 $7 $8 $9
do
cp -r ${TMPDIR}/$$/$file .
done

rm -rf ${TMPDIR}/$$


58 :作ってみた。:02/03/04 18:54.net
>>57
> tar xvzf hoge.tar.gz ファイル名
> でファイルが取り出せるなんて
> UNIX使い始めて4年目にして初めて知った!(激恥

僕もtarのoptionながめてて、ついさっき知りました :-)

> #!/bin/sh
>
> TRASH=$HOME/.trash.tar
> MYNAME=`basename $0`
>
> (中略)
>
> if [ $MYNAME = "recycle" ]; then
> if [ -r ${TRASH}.gz ]; then
> tar xvzf ${TRASH}.gz $@
> else
> echo "MSG5"
> fi
>
> exit
> fi
>
> (後略)
>
> コレだけでよかったのか?

っぽいですね。
でも、僕はまだ $* と $@ の違いがわかってなかったり。。。
ん?$*にはIFSってのがからんで$@には関係ないのかな?
って、IFSってのが良くわからん(汗

んで、どっちを採用しましょう?
僕的にはcase文にいれたいですけど…
どっちがよりスマートなんでしょう…


59 :36:02/03/04 18:58.net
>>58
http://www.rhythm-cafe.com/kb/shell/index.asp?sid=46&id=55
に$@ と$* の違いが載ってたよ

まぁ、取り出しをどうするかなんてのは好みでいいんじゃないかな。
でも、俺のやり方だとシンボリックリンク用意しないといけないから
そっちのがスマートかもね。


60 :作ってみた。:02/03/04 19:05.net
>>59
おぉ、thx!!一発でわかった(爆
俺頭悪いな(汗

ってことで、ちょこちょこ修正して
ん〜、2ch/Linuxスレのupローダにでもあげときますわ。
使いたい人は御自由にどうぞってことで。


61 :作ってみた。:02/03/04 19:11.net
あああああああ、ネタのようだ。。。。。
折角つくったfileをrm しちまった…

あほだ<俺

62 :うひひ:02/03/04 19:21.net
>>61
ちょっと目を離したすきにヤルじゃん。オチも良いよ
っていうかさぁワラタ
良いネタ師になれる

僕はあくまでrmとして使うから復活は全く考慮しない
倉庫代わりのクセはイヤンだから
でも凝るのもなかなか良いかもね



63 :36:02/03/04 19:22.net
こんな時こそゴミ箱を!
ってシャレになんねーな(w

俺の作った野でよければ
http://musou2.compress.to/dust
に置いとくよ。


64 :名無しさん@お腹いっぱい。:02/03/04 19:31.net
翻訳メッセージの取得に gettext コマンドを使うとそれっぽいかも。
そこまですることのもんでもないかもしれんが(ワラ


65 :作ってみた。:02/03/04 19:35.net
>>46のやつは保存してたので、それを元に書きなおした♪
ミスってたら、やだな。

http://linux2ch.omosiro.com/cgi-bin/upload.cgi
の081.binです。拡張子を取って好きにリネームしてください。
んで、PATHの通ったとこに。




66 :36:02/03/04 19:45.net
-g オプションの後にファイル名を与えないと
全部のファイルが取り出されるのは仕様ってことでいいか(w


67 :作ってみた。:02/03/04 19:48.net
>>66おっけーでしょう?(藁
普通にtarでも引数を指定しなかったらすべて取りだすし。

あれ?もしかして。"-s"あたりに統合できるのか?(汗

68 :名無しさん@お腹いっぱい。:02/03/04 23:13.net
スレとはあんま関係無いけど、

FATパーティションをマウントし、"con"って名前のファイル作って
Windowsを起動したらどうなりますか?

69 :名無しさん@お腹いっぱい。:02/03/05 01:11.net
流れよく読んでないけど、
#!/bin/sh で動かない script なら、

行頭の文字を
#!/bin/bash, #!/usr/bin/bash などと限定した方が
いいと思う。

70 ::02/03/05 01:27.net
畜生、おれのスレをスレ違いだらけにしやがって。

71 :名無しさん@お腹いっぱい。:02/03/05 01:44.net
>>70 おれのスレだってさ(プ

72 :本物の1:02/03/05 02:43.net
こらこら、騙るでないw

73 :名無しさん@お腹いっぱい。:02/03/05 03:14.net
むかし >>9 と同じようなコトした。スペース入れて、やけに時間かかると思ったのも
同じ。今は/に“-i”って空のファイルを置いてる。気休め、気休め。

74 :名無しさん@お腹いっぱい。:02/03/05 05:05.net
>>20
rm -i を rm のエイリアスに設定していると、知らないうちに \rm と打っている自分が
います。

zsh とかで \rm -R * するとホントに消して良いのか? ってメッセージが出ますよね。
それを \rm -R /* の時だけ、繰り返しメッセージ出すように変えられませんかね?
或いはコマンド自体、完全に禁止してしまうとか。

75 :名無しさん@お腹いっぱい。:02/03/05 06:33.net
>>64
bash2なら
http://www.unixuser.org/~ysjj/bash_script_i18n.html
というのがあるYO!

76 :名無しさん@お腹いっぱい。:02/03/05 20:46.net
>>1
アホ

77 :名無しさん@お腹いっぱい。:02/03/05 20:51.net
1は天才

78 :名無しさん@お腹いっぱい。:02/03/05 20:57.net
ばかとてんさいはかみひとえ

79 :名無しさん@お腹いっぱい。:02/03/05 22:42.net
>>78
でも馬鹿は馬鹿。

80 :名無しさん@お腹いっぱい。:02/03/27 16:37.net
ここで出来たスクリプト、おっきなファイルを捨てようとすると
重いのはまぁ納得だし、我慢するけどスペース含んだファイルを
捨てれないのが微妙にイタい。


81 :名無しさん@お腹いっぱい。:02/03/27 21:01.net
>>80
>我慢するけどスペース含んだファイルを
>捨てれないのが微妙にイタい。
本当だ、気づかなんだ…

なんか解決策ないっすかね?


82 :名無しさん@お腹いっぱい。:02/03/27 21:18.net
$find / -depth \( \( -type d -exec rmdir -- \{\} \; \) -o \( ! -type d -exec rm -- \{\} \; \) \)

83 :渡邊克宏:02/05/16 08:43.net
1で参照されているページを書いた者です。

>19 その状態においてスワップしたらとまるUNIX多いです。
それは普通ないと思ってます。
「多い」とのことですが、私の基準ではそれは病的な実装です。

実証されれば、広く発表するに値する情報かと思います。
具体的に、どんなOS(のどんなバージョン)で起きるのでしょうか?
再現する方法がありますか?
止まるとは、具体的にはpanicするということでしょうか?

ちなみに、
http://www.sra.co.jp/people/katsu/doc/rmrf/
での実験中にはpaging activityも通常どおりありました。

84 :渡邊克宏:02/05/16 08:47.net
>17 なぜOSやコマンドが消えているのにプロセスが停止しないのでしょう?

UNIXと呼ばれるもののsemanticsでは、
unlink(2)やrm(1)しても、コマンド(や対応するファイル)は*消えない*んです。

ディレクトリから消えるので、ls(1)とかするとなくなったように見えますが、
だれかが参照しているかぎり(コマンドを実行中とか、open(2)してるとか)
ファイルシステムには残ってるというわけです。

85 :名無しさん@お腹いっぱい。:02/05/16 08:59.net
でも、NFSクライアントがバイナリを実行中に、
NFSサーバ側からそのファイルを rm すると、
本当に消えて NFS クライアントがコアダンプしたりもする。

NFSクライアント側から消した場合は一応問題はないが、
.nfs???? とかいうファイルが出来てそれはそれでうざい。

86 :渡邊克宏:02/05/16 09:00.net
>80 スペース含んだファイルを捨てれないのが微妙にイタい。
quoteに全く気を使っていないからでしょう。

ここで書かれたスクリプトについては検証していませんが、あくまでも一般論として:
quoteに気を使わないで書かれたスクリプトは、トロイの木馬的なセキュリティホールを空けてしまう
可能性が大です。理由は自明でしょう。使ってはいけません。
セキュリティとは関係なくとも、いかにも事故を誘発しそうな気がしますよね。

shでスクリプトを書く場合、$@や$1のように表記するのが正しい局面というのはほとんどありえません。
"$@"や"$1"のようにすべきです。
通常の変数については、中身にある種の仮定が常に成立することをもって
quoteを省略する根拠とすることもありえましょう。

ちなみに、"$@"という表現はportabilityに問題があった時代もありました。
現在の事情はよく知りません。
だれかshに詳しい人教えて下さい。


87 :名無しさん@お腹いっぱい。:02/05/16 09:13.net
>>86
"$@" ってポータビリティに問題があった時代があったのですか?

たとえば、NEWS-OS 4.x の /usr/bin/nohup で、
通常なら "$@" と書くべきところが $* になっていて、
「これ書いた人シェルスクリプト知らねーんじゃねーの?」
と、思っていましたが、知った上であえて
$* と書いていたのでしょうか?

88 :名無しさん@お腹いっぱい。:02/05/18 00:39.net
>1
そーか? 寝惚けてた俺はカレントのファイルを消そうとして

rm -rf ./* → rm -rf /*

と打ったことに気がついて一瞬で目がさめたよ。

89 :名無しさん@お腹いっぱい。:02/05/18 01:40.net
寝惚けて妙な事をする事は無いけど、たまに恐ろしく
眠くて意識を失ないかけのときは何をしでかすか分からんから
そんな時の自分は恐い。


90 :名無しさん@お腹いっぱい。:02/05/18 02:01.net
rm -rf * とかは、必ずbashで C-x * して
コマンドライン中で展開してから実行する。
あと、1回目はlsして、2回目にそれをrmに換えるとか。

91 :名無しさん@お腹いっぱい。:02/05/19 02:53.net
rmがオプション取らないようにmakeしなおした。

92 :名無しさん@お腹いっぱい。:02/05/19 03:07.net
>>91
その手の回避策を取っていると、環境が変わった時に惨劇を引き起こす場合のある罠

93 :名無しさん@お腹いっぱい。:02/05/19 03:21.net
>>88
よくある話ですな。

94 :名無しさん@お腹いっぱい。:02/05/19 03:51.net
ディレクトリ単位で消す時はなるべくファイラ使うようにしてます。

95 :名無しさん@お腹いっぱい。:02/05/19 05:51.net
>>94
で、長いディレクトリを消そうとしたら、バッファの扱いが適当じゃなくて・・・。

96 :名無しさん@お腹いっぱい。:02/05/19 08:13.net
>>92>>74
「yぽこ病」ってのもあるらしい。

97 :名無しさん@お腹いっぱい。:02/05/19 13:38.net
yes |

98 :名無しさん@お腹いっぱい。:02/05/19 17:42.net
なんかレベル低いスレだなぁ・・・

99 :名無しさん@お腹いっぱい。:02/05/30 15:50.net
亀だけど、
>>19
スワップはふつー独立のパーティションにあるから
関係ないんじゃないすか。

100 :100!:02/05/30 17:04.net
100げっつぉ

101 :名無しさん@お腹いっぱい。:02/05/30 22:08.net
101 ばーがー、くろいつ、はいでるん

102 :名無しさん@お腹いっぱい。:02/06/01 06:11.net
/bin、/devが消えたとこでCtl+c しましたが、何か? (もちろん再起不能)

103 :名無しさん@お腹いっぱい。:02/06/05 16:22.net
rootでファイルを消す必要があった時は、
# mv hoge /tmp
して、自動で消えてくれるのを待つようにしている。
下のようなスクリプトを実行してしまって得た教訓。

# set build=/tmp/hoge
rm -rf $build/*
cd $build
tar zxf /tmp/hoge.tar.gz


104 :名無しさん@お腹いっぱい。:02/08/12 22:43.net
渡邊さんSRAを退職されたのね。
てことで、>>1のリンク先も移動。
http://katsu.watanabe.name/doc/rmrf/

105 :真実:03/01/02 15:59.net
       あるネット関連会社の社長は、「いずれにしても2ちゃんねるは
資金が底をつけば終わり。あまり知られていないことだが、
2ちゃんねる内部関係者によると今、大手通信会社系が調査費名目で資金提供している。
だが、それが止まれば続けてはいけないだろう」と証言する。
2ちゃんねるが判決によって力を失った場合、資金提供の打ち切りも予想される。
http://ascii24.com/news/reading/causebooks/2002/07/01/636911-000.html

 以下、別の記事のキャッシュ http://memo2ch.tripod.co.jp/article.html
 2ちゃんねるに近いあるインターネット関連会社の社長は、2ちゃんねるの幹部から得
た話として証言する。「2ちゃんねるは、運営者や幹部などがそれぞれ別々に会社を
作りカネの流れを見え難くしているが、実際の資金源は複数の大手通信会社系からの
調査費名目のカネ。月額で計約700万円と言い、年間にすれば1億円近く。額はともあ
れ、これは通信会社系的には、ぼう大なトラフィックを調査すると言う表向きの理由
が一応は立つ。自社系に都合の悪い書き込みがされた時に優先的に削除してもらうこ
とも期待している」と前置きし「通信会社系の削除の期待も含めて、2ちゃんねるは
総会屋と同じになっている」と言うのだ。
 その具体的な理由として社長は、こう話す。「2ちゃんねるはボランティアの削除人
が書き込みをチェックして、好ましくない書き込みを一所懸命削除している、という
ことになっているが、あれはウソ。削除人には給料が支払われ、その給料の原資と
なっているのが、まずいことを書き込まれた企業が削除要求とともに渡す裏金。これ
はまさに、総会屋の構図そのものだ。これまで裁判になっているのは金額で折り合え
なかったり、裏金を出さない強い態度の企業とだけだ」


106 :名無しさん@お腹いっぱい。:03/01/06 17:10.net
漏れのつまらん失敗談。

アンインストしようと思ったPlamo Linuxに
#cd /
#rm -fr /
したら,Windows領域自動mountしてるの忘れてて,気づいた時には
Program Filesフォルダが消えていた.

107 :名無しさん@お腹いっぱい。:03/01/13 18:31.net
>>106
思わず藁田

# Plamo'er なら update より再インストだろうが、
俺も気をつけねば。


108 :名無しさん@お腹いっぱい。:03/01/13 21:29.net
NFSで(ry
-o root 渡すマシンは考えてやろうという教訓

109 :名無しさん@お腹いっぱい。:03/01/13 22:44.net
恥ずかしながら本当にやってもた。
#pwd
/root/junk/
#rsync --delete rsync://localhost/test/ .
rsyncd.confの記述ミスでエラー.
#cd /etc
#vi rsyncd.conf
#rsync --delete rsync://localhost/test/ . # <<< やってもた!

/etcの下をゴミファイルに変えてしまいました。

110 :名無しさん@お腹いっぱい。:03/01/14 00:31.net
関西人は氏ねってことでしょうか。。。

111 :山崎渉:03/01/15 12:52.net
(^^)

112 :名無しさん@お腹いっぱい。:03/03/08 22:52.net
間違って、やってしまいました.....
気がついた時には....
boot領域の容量が、半分になってしまった.....
たく。。
くそ忙しいのに....涙

113 :名無しさん@お腹いっぱい。:03/03/22 02:26.net
最近OSの調子が悪かったので、再インスコの前にバックアップをとって、しました。
バックアップHDをつなぎっぱでやってしまったので、全て消えました。

114 :山崎渉:03/04/17 12:26.net
(^^)

115 :あぼーん:あぼーん.net
あぼーん

116 :あぼーん:あぼーん.net
あぼーん

117 :名無しさん@お腹いっぱい。:03/05/27 00:50.net
私は何も知らなかったころ、自分専用マシンだからまだ良いものの

rm -fr $PWD ペシッ
・・・うぐおおお! 

となったことがあるのでsudo使ってますが何か?


118 :あぼーん:あぼーん.net
あぼーん

119 :名無しさん@お腹いっぱい。:03/05/28 18:36.net
>>117
sudo rm /etc
した事があります。
直前にもsudo使ったので、パスワード確認無し…

似たような構成のマシンからそっくりコピーしてなんとか復旧。


120 :名無しさん@お腹いっぱい。:03/06/21 15:30.net
以前、カレントディレクトリ以下の特定の名前のディレクトリを
まるごと全部消そうとしたとき、

find ./ なんちゃらかんちゃら -exec rm -r {}/* \;

みたいにやったら……そりゃないよママン。
変な制限つけないでくれよ。

121 :あぼーん:あぼーん.net
あぼーん

122 :あぼーん:あぼーん.net
あぼーん

123 :名無しさん@お腹いっぱい。:03/08/10 13:02.net
既出
http://katsu.watanabe.name/doc/rmrf/
http://pc.2ch.net/test/read.cgi/unix/1015160064/

124 :名無しさん@お腹いっぱい。:03/08/10 13:16.net
>>123
誤爆?

125 :名無しさん@お腹いっぱい。:03/08/10 16:14.net
>>124
再帰だろう

126 :名無しさん@お腹いっぱい。:03/08/12 13:03.net
やったことあるよ、結果は分かるでしょ。
rm -rf ./
のつもりが、
rm -rf . /
になってたのよ。

127 :あぼーん:あぼーん.net
あぼーん

128 :あぼーん:あぼーん.net
あぼーん

129 :名無しさん@お腹いっぱい。:03/08/15 22:42.net
# rm -rf "山崎 渉"

130 :名無しさん@お腹いっぱい。:03/10/05 12:25.net
ついに rm -rf をやってしまいました。
一週間分の仕事がパー。

テスト中のスクリプトの中でこんな記述が
あったのが悪かったようです。

rm -rf "$DIR/$FILE"

ここで $DIR も $FILE も空だったため、
/ が消えてしまった、と。

131 :名無しさん@お腹いっぱい。:03/10/05 12:30.net
でも、rm -rf 自体は必要な操作なので、
IsSafePath() とでもいうシェル関数を作って、
削除前に確かめたいのですが、
どんなふうにすればいいでしょうか。

IsSafePath() {
  path=$1

  if [ $path = "" ]; then
    return 1;
  elif [ $path = "/" ]; then
    return 1;
  fi

  return 0;
}

とりあえずこんなのを書いてみましたが、
これだと "///" とか "/test/.." とか
home ディレクトリで "../" とか
ln -s / test を対象に "test/" とかが
通ってしまいます。

何かいい方法はないでしょうか。。

132 :名無しさん@お腹いっぱい。:03/10/05 13:28.net
>>131
そもそもrootでやる必要があることなのか ?

133 :名無しさん@お腹いっぱい。:03/10/05 13:31.net
>>132
そ、そ、それは・・・。

でもせっかくシェル関数を作ってみたので、
"/"と"test/../../"などとの同一性を
確実に見分ける方法を教えてくだちい。

134 :名無しさん@お腹いっぱい。:03/10/05 13:46.net
>>133
cmpとかは ?

135 :名無しさん@お腹いっぱい。:03/10/05 13:57.net
>>134
・・・それってまさか、/ 以下と target path 以下の
ファイルを全部 compare しるってことですか?

136 :名無しさん@お腹いっぱい。:03/10/05 14:03.net
あっ、でも、こんなのでもいいかも。
で、/ 直下と全く同じ構成なんてまずあり得ないし、
そういうのは全部禁止しちゃっても問題なさげ。

cd $path
ls > /tmp/list1.$$
cd /
ls > /tmp/list2.$$

if ! cmp /tmp/list1.$$ /tmp/list2.$$; then
  return 1;
fi

ありがとうございました!
でももっとスマートな方法はないのかなぁ。
/ だけじゃなく /usr, /etc, /var などにも
適用範囲を広げられるような。

137 :DQN.cc● ◆IuDnGO5LnY :03/10/06 01:05.net
データ消失記念日
http://dqn.cc/83f815B835E8FC18EB88BL94O93FA.html
「2003年10月初頭、ぼくは操作ミスにより大事なデータを
失ってしまいました。この文書では、データを失った過程を説明し、
反省点および今後に向けた課題について論じます」(『はじめに』より)

138 :名無しさん@お腹いっぱい。:03/10/11 02:51.net
>>136
man realpath

139 :名無しさん@お腹いっぱい。:03/10/14 15:54.net
ところでLindowsってゴミ箱あんの?

140 :名無しさん@お腹いっぱい。:03/10/15 21:36.net
>>139
http://www.lindows-jp.com/img/about/p_02.jpg

141 :名無しさん@お腹いっぱい。:04/02/22 09:31.net
rmじゃないけど、
$ ln -s /home/hoge /piyo
見たいな事をやろうとして、間違って
$ ln -s /piyo /home/hoge
とやってしまって1ユーザのホームを全滅させちまったことがある。

142 :名無しさん@お腹いっぱい。:04/02/22 10:29.net
>>141
ハァ?

143 :名無しさん@お腹いっぱい。:04/02/26 21:04.net
rootのaliasでrmをrm -iにするだけでOKじゃんと思っていたが
でも確かに\rmってつけて動かす時あるから同じなんだよね。
うーん...

144 :名無しさん@お腹いっぱい。:04/02/28 12:21.net
# rm -rf .*
ってのはどうでしょうか。

145 :名無しさん@お腹いっぱい。:04/10/02 03:32:37.net
age

146 :名無しさん@お腹いっぱい。:04/10/02 09:34:19.net
一旦、まっさらにするときに試しにやったことはある。

% \rm -rf /

147 :名無しさん@お腹いっぱい。:04/10/06 12:20:23.net
rm じゃないが、パーティションの引越し(/foo→/bar)をミスったことがある。
/bar をtypoして /baz という実在しないディレクトリ名としてしまった。

# cd /foo
# tar cvf - . | (cd /baz; tar xf -)

ぱっと見では壊れてなさげだったけど、念のため再インストールした。
それ以来はこうするようにしている。

# tar cvf - . | (cd /bar && tar xf -)


148 :名無しさん@お腹いっぱい。:04/11/15 09:24:54.net
FreeBSD4.1くらいのときに、ロックか何かされてるんじゃ?
なんて、思いながら、
# rm -rf /
やりました。
予想外にディスクがガリガリ言い出したので、慌てて
電源切りましたが、二度と起動しませんでした。(ワラ

149 :名無しさん@お腹いっぱい。:04/11/20 01:39:33.net
rm -rf / なんてまず使わないのになんでコマンドとして許可されてるのかね
いまだに不思議だ


150 :名無しさん@お腹いっぱい。:04/11/20 03:32:50.net
すごい発言

151 :名無しさん@お腹いっぱい。:04/11/20 22:27:31.net
同じことを freebsd-hackers@ にポストした香具師が居たなあ……
ttp://lists.freebsd.org/pipermail/freebsd-hackers/2004-October/008493.html

で、お約束の大論争の末、FreeBSDの rm -rf / は封印された。
ttp://www.jp.freebsd.org/cgi/cvsweb.cgi/src/bin/rm/rm.c#rev1.49
# rm -rf /
rm: "/" may not be removed

152 :名無しさん@お腹いっぱい。:04/11/20 23:31:52.net
>>151
。・゚・(ノД`)・゚・。

153 :名無しさん@お腹いっぱい。:04/11/21 01:11:22.net
>>151
うへー、すげー大論争。読む気がしないや。
このスレ住人としては封印は悲しいものがあるな。

154 :名無しさん@お腹いっぱい。:04/11/21 03:20:19.net
>>151
ttp://www.jp.freebsd.org/cgi/cvsweb.cgi/src/bin/rm/rm.c#rev1.49
> Find out how flame-proof my underwear really is.
なげやりなコミットログ ワロタ

155 :名無しさん@お腹いっぱい。:04/11/25 21:33:25.net
つい、出来心で、OpenBSDにおいて、rm -rf / を実行してみた。。。ゴリゴリ消えている様子w

156 :155:04/11/25 21:34:55.net
# rm -rf /
rm: /home: Device busy
rm: /tmp: Device busy
ls
rm: /usr: Device busy
rm: /var: Device busy
rm: /: Is a directory
# ls: Command not found.
#

rootでの実行結果w

157 :155:04/11/25 21:36:55.net
Etermを導入できなかった腹いせにやってみたが、
これから、再インストール。。。
(ターミナルインストールできない俺が厨なだけか、、、

158 :名無しさん@お腹いっぱい。:04/11/25 21:45:10.net
GNUのrmだとどうなの?

159 :名無しさん@お腹いっぱい。:04/11/26 00:25:09.net
>>156
echo *

160 :名無しさん@お腹いっぱい。:04/11/26 00:36:19.net
unrm -rf /
で即時復活

161 :名無しさん@お腹いっぱい。:04/11/26 14:55:38.net
>>152-153
44bsd-csh や v7sh とかあるぐらいだから、
封印してない版の rm を ports/games にでも入れたらどうか。

162 :名無しさん@お腹いっぱい。:04/11/26 17:51:22.net
rmにゴミ箱機能をつければすべて解決

163 :名無しさん@お腹いっぱい。:04/11/26 18:03:14.net
そのゴミ箱が消されないようにしないと非解決。

164 :名無しさん@お腹いっぱい。:04/11/26 21:23:59.net
システムのfullbackup/restore試験のためにsolarisで何回かやったことあるよ。いざという時に戻らないと大変だからね。

165 :名無しさん@お腹いっぱい。:04/11/26 21:24:49.net
システムのfullbackup/restore試験のためにsolarisで何回かやったことあるよ。いざという時に戻らないと大変だからね。

166 :名無しさん@お腹いっぱい。:04/11/27 00:21:44.net
>>161
ttp://www.jp.freebsd.org/cgi/cvsweb.cgi/src/bin/rm/rm.c#rev1.50
にあるように、POSIXLY_CORRECT環境変数をセットしておけば
封印が解除される。
# env POSIXLY_CORRECT= rm -rf /

167 :名無しさん@お腹いっぱい。:05/01/23 12:39:51 .net
>>148
C-cじゃだめなの?
まっさきに電源に手が行くところが厨っぽいですね。ぷぷ

168 :名無しさん@お腹いっぱい。:05/01/25 04:09:27 .net
HDDの空き領域を全てのコマンドに対するUNDO/REDO用バッファにすれば無問題。

169 :名無しさん@お腹いっぱい。:05/01/27 13:56:56 .net
つーか、root の癖してヘタレだなぁ〜w

という漏れもやったことあります。Sun3 の時代。

root でスクリプト作業をしていて、ワークディレクトリとして /tmp/work を掘って作業。
終了後、pwd せずに rm -rf *
ディスクアクセスが長い(2秒くらいたった)ので、Ctrl-C をして pwd したら・・・ / にいた。
boot ファイルなどが消滅。

仕方ないので、そのままの状態で他のマシンからファイルをコピーして、 boot ファイルは
再構築した。
全部確認が済んで、再起動の瞬間が一番怖かったw

でも、その後もalias も何も設定しなかった。
だってね・・・・ alias とかで慣れてしまったら、他のマシンの root で作業できなくなるから。
root に必須なことは、「ディフォルトの環境ですべてが出来ること」が信条。

170 :名無しさん@お腹いっぱい。:05/02/11 13:57:17 .net
上で作ったゴミ箱のスクリプト欲しいんだけど最終版ないの?

171 :名無しさん@お腹いっぱい。:2005/06/18(土) 23:58:36 .net
やっちまった
rm -rf /
ではなくて
rm -rf ./hoge
をやっちまった
単にディレクトリの補間ミスなんだが

2ヵ月間かけて書いたテキストがことごとく消えた
泣きそう
これも、消えてから2時間後に書いてるし…


本間にやばいな
もうかくきにはなれん
なんや、死にたくなるな


おまえらは、大切なデータが消えたときどうしてる?

172 :名無しさん@お腹いっぱい。:2005/06/19(日) 00:04:19 .net
バックアップから書き戻す

173 :名無しさん@お腹いっぱい。:2005/06/19(日) 00:06:51 .net
>>171
RAID1しかしてなかって
1時間おきのrsyncだったから
RAID1は同時に消えてる
rsyncも気づいていないうちに消えてる

174 :名無しさん@お腹いっぱい。:2005/06/19(日) 02:16:45 .net
>>171
別のサーバでユーザ権限を持っている関係で、
よくネットワーク経由でバックアップを取る。
ある程度変更がでかくなると、別のメディアにもバックアップをとる。
なんらかの原因で死んだ時には、そこから書きもどす。

UNIX系列ではrmが恐いというのもあるけど、
何より、ハードディスクトラブルなどの類はいつ起こるか分からない。
事故を契機に、きちんと防護策を取るようにするといいと思う。

毎回編集後にrm *~やrm *.bakをやってたけど、最近恐くなったんで
この用途専用のスクリプトを書いて、rmとは別名でbinディレクトリに置いた。


175 :名無しさん@お腹いっぱい。:2005/06/19(日) 03:47:21 .net
DOSのUNDELETEコマンド見たいのキボンヌ・・・
なんて言ったら怒られますか?

176 :名無しさん@お腹いっぱい。:2005/06/19(日) 04:46:21 .net
そういうの実装してる fs ってある?

177 :名無しさん@お腹いっぱい。:2005/06/19(日) 05:15:01 .net
NetApp の WAFL ってファイルシステムではできるらしいよ。
file system snapshot の機能で
rm hogehoge
すると
cp -p .snapshot/hourly.0/hogehoge .
で undelete になるらしい。
NASなのでどんなUNIXからでも使えると思う。
WAFL は log structured filesystem の一種みたい。

178 :名無しさん@お腹いっぱい。:2005/06/19(日) 08:03:44 .net
RAID1だと危険なんだな
rsyncも消した次にしたらまったく意味ないし
バックアップで完全に他のメディアにまるごとバックアップとるしかないのか?

179 :名無しさん@お腹いっぱい。:2005/06/19(日) 08:14:17 .net
毎回フルバックアップ取る必要はないし、フルバックアップも毎回同じメディアに上書きしてちゃ危険。

180 :名無しさん@お腹いっぱい。:2005/06/20(月) 03:10:09 .net
ミラーリングによる耐障害性とバックアップとアーカイブは別の話。
ごっちゃに語るモンではない。

181 :名無しさん@お腹いっぱい。:2005/06/20(月) 09:08:00 .net
うっさいしね

182 :名無しさん@お腹いっぱい。:2005/06/20(月) 11:40:30 .net
漏れも最近痛い目を見たんで、
--
rm -f /home/.snap/snap-login
mksnap_ffs /home /home/.snap/snap-login
--
みたいなスクリプトを .xsession に書いた。
今後何かあっても、rootになって
--
mddev=$(mdconfig -a -t vnode -f /home/.snap/snap-login)
mount -r /dev/$mddev /mnt
--
とすればログイン直後の状態まで戻せる。

本格的にやるならcronで定期的に動かしたいところだけど、
mksnap_ffs って意外と負荷がかかるからなあ。

183 :名無しさん@お腹いっぱい。:2005/06/20(月) 15:31:42 .net
おまえ激しいミスしてんぞ

184 :名無しさん@お腹いっぱい。:2005/06/27(月) 02:10:26 .net
>>180
バックアップはデータの複写を別の箇所に保存すること、

アーカイブは複数のファイルをまとめたファイルまたはそれを保存するサーバで
バックアップとして利用できるもの、

ミラーリングはデータ全体の完全な複写を別の箇所にとっておくことで、
フル・アーカイブやフル・バックアップとも呼べるもの、
ディスクシステムとしてオートミラーリングを取り込んだのがRAID

‥という理解でいるけれども、どうだろうか。
互いに重なり合っている概念だと思う。


185 :名無しさん@お腹いっぱい。:2005/07/05(火) 16:44:15 .net
>>1のコマンドは無いけど窓初心者の時「c:\windowsって使ってないなー。容量の無駄
だから消すか。」って色々消したら。
電源投入→windowsを起動しています→電源を切る準備が出来ました。
とか言う風になって和露ってしまた。



186 :名無しさん@お腹いっぱい。:2005/07/12(火) 00:05:09 .net
alias rm rm -i

187 :名無しさん@お腹いっぱい。:2005/07/12(火) 00:47:47 .net
>>186はまったく役にたたない最低の方法

188 :名無しさん@お腹いっぱい。:2005/07/12(火) 04:44:34 .net
>>186が釣りでなかった場合のために、一応。

rmをrm -iへエイリアスする方法の問題は、
yぽこ病を誘発するとしてどこかの文書で非難されていた。

常にrm -iに対応する事で、rm後にyを打つ事に慣らされてしまう問題。
このスレでは>>32 >>74あたりが関連。
しまいにはrm *.txtなどとして、確認プロンプトで削除ファイルを選別する癖がつく場合もあるとか。

この癖が問題を起こすのが、他環境でのrm実行。
これを防ぐために、どうしてもrm -iをデフォルトにしたいなら、
rmとは別名の(既存でない)コマンドにして常時それを使うようにしろ、というのが一応の結論。
他環境でいつもの癖が出たとしても、command not foundで済むということ。


189 :名無しさん@お腹いっぱい。:2005/07/12(火) 08:06:32 .net
うちの会社(部署)ではrmをrm -iのaliasにすることを禁止しています。
ときどき抜き打ちチェックが入ります。

190 :名無しさん@お腹いっぱい。:2005/07/12(火) 10:08:07 .net
うわ、やだなそれ。
他にも面白い禁止事項ない?

191 :名無しさん@お腹いっぱい。:2005/07/12(火) 16:06:44 .net
ラリー車速杉

192 :名無しさん@お腹いっぱい。:2005/07/14(木) 12:01:39 .net
Makefileをホームディレクトリとかワークディレクトリに置いてます。
clean:
    /bin/rm -f *.bak *~ *.core core

$ make clean
でゴミ削除

193 :名無しさん@お腹いっぱい。:2005/07/14(木) 20:21:19 .net
rmじゃないけど、うっかりやってしまって地味に痛かったコマンド
find ./ -type -d | xargs chmod 700
勿論/で実行してしまったよ…orz

194 :名無しさん@お腹いっぱい。:2005/07/14(木) 20:29:49 .net
俺は rm -rf /hoge/hage/oyaji を削除しようとして、うっかり rm -rf /hoge/hage oyaji と
入力して Enter してしまったことならあるな。
気付いたのは /hoge/hage 配下に何も見当たらなくなってから。

195 :名無しさん@お腹いっぱい。:2005/07/14(木) 22:09:11 .net
>193
*BSDならmtreeで簡単に復旧できるなぁ

196 :名無しさん@お腹いっぱい。:2005/07/15(金) 00:32:29 .net
alias rm /dev/null <

197 :名無しさん@お腹いっぱい。:2005/07/27(水) 14:40:55 .net
うおおおおおおおおおおおおおおおひいいいいいいいいいいいいいいいいい
ぐぎゃああああああああああああああああああああああああああああああああああああああ

198 :名無しさん@お腹いっぱい。:2005/07/28(木) 21:10:02 .net
rm /bin/rm

199 :名無しさん@お腹いっぱい。:2005/07/28(木) 21:14:36 .net
rm -rf .

200 :名無しさん@お腹いっぱい。:2005/09/04(日) 00:49:30 .net
hp-uxでは効かないって知ってる?

201 :名無しさん@お腹いっぱい。:2005/09/09(金) 00:29:58 .net
chmod -R 4777 /*

202 :名無しさん@お腹いっぱい。:2005/09/09(金) 23:55:21 .net
*要るの?


203 :名無しさん@お腹いっぱい。:2005/09/13(火) 07:03:22 .net
OpenBSDでは効いたがな。

204 :名無しさん@お腹いっぱい。:2005/09/23(金) 22:44:58 .net
alias rm -rf/ echo だめよん。

205 :名無しさん@お腹いっぱい。:2005/12/10(土) 23:37:26 .net
age

206 :名無しさん@お腹いっぱい。:2006/01/04(水) 17:03:37 .net
% ls
kashi.txt piyo.mp3
% mv * ~/music/piyo/
を間違って
% mv *
% ls
song.mp3
%
としたことがある

207 :名無しさん@お腹いっぱい。:2006/01/05(木) 12:49:06 .net
>>206
スマン、意味わからない。

208 :名無しさん@お腹いっぱい。:2006/01/05(木) 13:11:43 .net
ヒント:
* 「mv *」は「mv kashi.txt piyo.mp3」に展開される
* 「song.mp3」 は typo

209 :名無しさん@お腹いっぱい。:2006/01/05(木) 22:31:00 .net
そろそろOS入れ替えるから
新鯖構築終わったら遊んでみるかね

210 :名無しさん@お腹いっぱい。:2006/01/06(金) 15:38:57 .net
何このネタスレ…と思ったけど>>73の -i ってファイル置くアイデアはちょっと面白いな。
おれも気休めのつもりで / と ~/ 直下に置いてみた。
まあおれは幸いにしてまだそれほどひどい事故に遭ったことはないんだが。

しかし考えてみると、そもそもファイル削除とディレクトリ(中身含む)削除に
同一のコマンドを使うってのが誤操作を誘発しやすくなってるんじゃないだろうか?
ディレクトリ単位での削除には別の適当なスクリプトでも使った方がいいんじゃないかな。
それでも間違える時は間違えるけど、引数チェックで / とかだったら蹴るとかできそうだし…。

…と思ったがこれだと今度はファイルとディレクトリをまとめて削除するのが面倒になるな。
やっぱりこの手の操作は自分で注意するしかないってことか…。

211 :名無しさん@お腹いっぱい。:2006/01/06(金) 15:44:32 .net
>>210
けっきょくそのスクリプトの方を常用してしまうだろう。
あと、/ だけが危険なわけではない。

212 :名無しさん@お腹いっぱい。:2006/01/06(金) 18:27:16 .net
むやみに rm に -f を入れる習慣も悪いよ。
特に -r の時は入れるべきじゃない。
ディレクトリ消すだけのときは rmdir を使い、
ファイル込みの場合は rm -r で、
それでパーミッションの警告が出るときだけ rm -fr にすべき。

213 :名無しさん@お腹いっぱい。:2006/01/06(金) 20:36:53 .net
ってか alias rm='rm -i' ってあまりいい習慣ではないんだな…。おれは長いことこれで通してきたんだが
確かに機械的にy押してしまう傾向があるのは否定できない。これは見直したほうがいいかもしれんね。

しかし mv, cp はデフォルトで -i 付けても問題ないというか、むしろそっちの方が安全だと思うんだがどうなんだろ。
-i しないと>>206みたいなのが怖いし、上書きするケースってそんなに多くないと思うんだけど。

214 :名無しさん@お腹いっぱい。:2006/01/08(日) 00:13:51 .net
ゴミ箱スクリプトを作ってaliasしてつかってる。
このスクリプトのバグで予想外のファイルが消えそうで少し恐い。
バックアップが一番か

215 :名無しさん@お腹いっぱい。:2006/01/08(日) 17:09:54 .net
なんて低レベルな話題なんだろう
つーかそもそも人間が直接コマンド叩いてやるのが間違い
GUIでやれGUIで


216 :名無しさん@お腹いっぱい。:2006/01/08(日) 17:16:02 .net
釣れそうですね

217 :名無しさん@お腹いっぱい。:2006/01/08(日) 18:01:52 .net
WindowsではPartitionMagicみたいな失敗したらヤバイ系のソフトには必ず
コマンド入力しても実際の操作をする前に「適用」みたいなボタンがあって、
それを押さない限り操作は確定しない
または処理フローを試すだけのテストが行えるようになってる
UNIXのコマンドにはそういった緩衝材や保険がないのがイカンということだよ
GUIでやれGUIで

218 :名無しさん@お腹いっぱい。:2006/01/08(日) 18:08:20 .net
正論だな。

219 :名無しさん@お腹いっぱい。:2006/01/08(日) 18:25:21 .net
それぐらい注意して出来ない奴がだめ。
俺も時々ミスるが・・・

220 :名無しさん@お腹いっぱい。:2006/01/08(日) 18:27:15 .net
fdisk だって最後の確認あるじゃん。

221 :名無しさん@お腹いっぱい。:2006/01/15(日) 16:28:58 .net
>>210
-fr ってファイルも置k

222 :名無しさん@お腹いっぱい。:2006/01/15(日) 16:30:48 .net
どっかの65万株を1円で売り出したシステム(略

223 :名無しさん@お腹いっぱい。:2006/01/15(日) 20:55:45 .net
MSDOS の癖でカレントディレクトリ表示→確認ok→rm -rf
ってやろうと思ったらゴミディレクトリ消さずにホームディレクトリ
消してしもうた。ディレクトリ名が出ない時点で止めれば良かったものを
あれ何も出ないやまあ良いか的なノリで消してしまった。

224 :名無しさん@お腹いっぱい。:2006/01/16(月) 01:23:55 .net
rm -i は駄目としても rm -v はやっておいた方が良くないか?
まあ単に一部のファイルは助かるかもってだけだが…

225 :名無しさん@お腹いっぱい。:2006/01/19(木) 20:29:07 .net
エラー出力が流れちゃう。

226 :名無しさん@お腹いっぱい。:2006/01/23(月) 19:50:27 .net
家庭用マシン、俺ユーザのMeta-jにWMの制御キー割り当ててるんだけど、suして

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

助かったわけだけど(>>151氏の話)
冬場かじかんだ指で死んだマシンが世界に何台あるだろうかとふと思った
寒い季節は気をつけようね…

227 :名無しさん@お腹いっぱい。:2006/01/27(金) 20:06:05 .net
バックアップファイル(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 .net
>>227
三田

229 :名無しさん@お腹いっぱい。:2006/02/05(日) 01:32:49 .net
>>227
-maxdepth とか -mindepth といったオプションは
判別式の前に持ってくる事を推奨する。

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

find "$target_dir" -mindepth 1 -maxdepth 1 -type f -regex '.*~$' -exec $RM \{\} \;


230 :名無しさん@お腹いっぱい。:2006/02/09(木) 17:49:19 .net
>>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 \{\} \;


231 :名無しさん@お腹いっぱい。:2006/02/10(金) 03:15:43 .net
>>230
>-mindepth, -maxdepth を先頭に持ってくる理由

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

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



232 :名無しさん@お腹いっぱい。:2006/02/12(日) 01:49:01 .net
#!/bin/sh
$dir="$HOME/temp/*"
rm -rf $dir

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

233 :名無しさん@お腹いっぱい。:2006/02/12(日) 01:55:16 .net
ごめん232だけど書き間違い
正しくは↓

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

皆様、気をつけてください〜〜


234 :名無しさん@お腹いっぱい。:2006/02/12(日) 02:04:53 .net
怖いからWindowsのような“ごみ箱”を作っていますが、
そういう方は結構いらっしゃるのでしょうか?
(ごみ箱の中はcronで定期的に削除)





235 :名無しさん@お腹いっぱい。:2006/02/12(日) 02:09:12 .net
単一ファイルを間違って消すよりも、
rm -fr で意図しない削除をして失敗することのほうが多そうだ。

236 :名無しさん@お腹いっぱい。:2006/02/12(日) 02:37:43 .net
ドットファイルをまとめて消すにはどうしたらいいのだろうか?

237 :名無しさん@お腹いっぱい。:2006/02/12(日) 11:54:16 .net
めんどーだから rm .* ってやればどっと消えるよ

238 :名無しさん@お腹いっぱい。:2006/02/12(日) 12:03:57 .net
「どっと」消えるよ

239 :名無しさん@お腹いっぱい。:2006/02/12(日) 12:11:03 .net
rm -rf .[!.]*

240 :名無しさん@お腹いっぱい。:2006/02/14(火) 06:29:37 .net
>>239
..erophoto が消えません!><

241 :名無しさん@お腹いっぱい。:2006/02/14(火) 06:37:22 .net
すみません、
rm -rf * .[^.]* ..?*
と3つ消せばよさそうです!><

242 :名無しさん@お腹いっぱい。:2006/02/16(木) 22:47:15 .net
あちゃ〜(ノ∀`)

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

だははは ls すらできねぇ
もういいや、再インストールだゲラゲラ

243 :名無しさん@お腹いっぱい。:2006/02/17(金) 02:22:13 .net
こういう場合の復活のしやすさってOSによるよね。
配布イメージが細かくパッケージに分かれてるOSだと面倒だから
再インストールする方が早いかも。
*BSDなんかは簡単なんじゃが。

244 :名無しさん@お腹いっぱい。:2006/02/17(金) 07:00:40 .net
>>243
逆だろ。*BSDだと、OS基本部分がパッケージ管理されていないから
どのファイルが消えたか確認するのも大変。
しかも、インスコCDでブートした時のシェル環境が貧弱。
SolarisまたはLinuxなら、OS基本部分もパッケージ管理されてるし、
インスコCDでブートした時のシェル環境が便利だから、
CDブートして、HDDマウントして、パッケージ復元すればいいだけ。

245 :名無しさん@お腹いっぱい。:2006/02/17(金) 10:46:15 .net
*BSDのほうが面倒?/bin が消えたってわかってるんなら
インストールCDの/binの部分を書き戻したらおわりじゃん。



246 :名無しさん@お腹いっぱい。:2006/02/17(金) 11:04:28 .net
>>243 >>245 は、*BSD以外のパッケージシステムに慣れてないだけ。
慣れればパッケージの方が楽。
今時分割tar.gzを手動展開する方が時代遅れ。

247 :名無しさん@お腹いっぱい。:2006/02/17(金) 12:43:44 .net
>>242
運が悪かったな
おれは先ほど rm -rf tmp/ のつもりが rm -rf /tmp したけど無問題だったぜアヒャヒャ


248 :名無しさん@お腹いっぱい。:2006/02/17(金) 12:55:29 .net
/binのリカバリだよね。
/binにどのパッケージが書くのかをみて対象をパッケージ追加するの?

時代遅れかどうかはともかく、bin.rpm なんてものが存在しなきゃ
tgzでいいんじゃマイカ?


249 :名無しさん@お腹いっぱい。:2006/02/17(金) 14:02:16 .net
そうか、慣れると
tar zpxf /mnt/usr/DIST/base.tgz -C /mnt ./bin
よりも簡単に復旧できるのか。
超強力なパッケージシステムだな。
ぜひ、その手順を教えてくれ。
上のコマンド一発より短いんだから、ここに手順を
貼るのも簡単だろ。(w

250 :名無しさん@お腹いっぱい。:2006/02/17(金) 15:43:36 .net
>>249
それ、NetBSDか? FreeBSDだとbase.aa base.ab ... に分割されてるわけだが。
しかも、RELEASE版に戻してしまっていいならそれでもいいが、
STABLEとかで、自分でmakeしたバイナリだと、それでは戻せないだろ。

やはり、baseも含めて何らかのパッケージ管理をするべき。

251 :名無しさん@お腹いっぱい。:2006/02/17(金) 16:11:27 .net
> それ、NetBSDか? FreeBSDだとbase.aa base.ab ... に分割されてるわけだが

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

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

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

てゆうか、上のコマンドより少ない手間で済むパッケージシステムなんて
あるの?


252 :名無しさん@お腹いっぱい。:2006/02/17(金) 17:15:54 .net
単純なシステムのほうが修復しやすいよな。

253 :名無しさん@お腹いっぱい。:2006/02/17(金) 17:53:07 .net
tar だと atimeが復元できないからヤダ。

254 :名無しさん@お腹いっぱい。:2006/02/17(金) 18:45:01 .net
配布ファイル中の atime は復元できるでしょ。

それとも、そのマシン上でアクセスされた時刻って意味?
だったらバックアップを使った restore が必要だねえ。
その場合は tar じゃなくてパッケージシステムの場合も駄目だねえ。

255 :名無しさん@お腹いっぱい。:2006/02/17(金) 20:20:16 .net
とりあえず、RPM や deb や portage の場合、どうやって復旧するのが
いいのか、いまどきのパッケージシステムを使ってる人に教えてほしい
なあ。tar より簡単でなきゃヤダなんて無理は言わないからサ。

まさか、再インストール以外に方法がないなんてことはないよねえ。(w

256 :名無しさん@お腹いっぱい。:2006/02/17(金) 22:31:39 .net
何この馬鹿?

257 :名無しさん@お腹いっぱい。:2006/02/17(金) 23:23:58 .net
>>244>>246 はどこに消えたの?
嘘がバレて出てこれなくなった?

時代の先端をいくパッケージ復元方法キボン

258 :名無しさん@お腹いっぱい。:2006/02/17(金) 23:48:24 .net
ごめんなさい。

259 :名無しさん@お腹いっぱい。:2006/02/18(土) 00:31:44 .net
素直に謝ったか。よしよし、許してつかわすぞ。

260 :名無しさん@お腹いっぱい。:2006/02/18(土) 00:32:27 .net
何この馬鹿?

261 :名無しさん@お腹いっぱい。:2006/02/18(土) 01:36:19 .net
>>242 でつ
この際、最低限のものを/homeとかにもコピっときますた。
cp ls mv tar これだけあればなんとか復帰可能…かなw

262 :名無しさん@お腹いっぱい。:2006/02/18(土) 08:47:18 .net
>>257
知りたいならそんな言い方したら教えてくれなくなるぞ。
素直に「教えてください」と言え。
あと、板違いなので犬板で聞くかググるかすれば答えは見つかる。

# あと、ら抜きやめろよな。

263 :名無しさん@お腹いっぱい。:2006/02/18(土) 08:54:31 .net
>>254
tarってatime記録されてたっけ?
dumpやcpioなら記録されてるけど。
まあ、atimeなんて戻してもしょうがないが。

264 :名無しさん@お腹いっぱい。:2006/02/18(土) 15:57:05 .net
実験1
cd /home
rm -rf .*

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

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

unlink .

fsdb が使えれば修復できるが。Linuxはヤバいかもよ。


265 :名無しさん@お腹いっぱい。:2006/02/18(土) 16:31:14 .net
tar はアホだからディレクトリの更新時刻が
全て現在に変わってしまったはず。
find -depth | cpio ならきれいに復元してくれる。
しかも tar はパス名100バイトまでしか保障されない。
cpio は1024バイトまで。プロなら tar は使わない。

266 :名無しさん@お腹いっぱい。:2006/02/18(土) 20:51:18 .net
Windowsだけど、あるシェアウェアのバグでC:ドライブのルートから
ごっそり削除されたことがある。
tempフォルダ内のゴミを削除するルーチンが暴走したらしい。

バックアップとってたから被害少なかったけどショックだったなぁ。

267 :名無しさん@お腹いっぱい。:2006/02/18(土) 22:34:59 .net
> あと、板違いなので犬板で聞くかググるかすれば答えは見つかる。

この一行の返答の方が、>>249>>251 のコマンドラインよりも
長いってところが笑えるな。結局 >>244>>246 は嘘つきケテーイ
ってことか。

268 :名無しさん@お腹いっぱい。:2006/02/18(土) 23:15:52 .net
Linux 系の場合、/bin だけ復旧するようなうまい手はないのか、
それとも、方法はあるけど、ここには貼れないくらい手順が長いのか、
どちらなのかな。

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

>>261 はどうやって復旧したの?

269 :名無しさん@お腹いっぱい。:2006/02/19(日) 02:31:55 .net
パッケージシステム作るときに
/bin 消したときの復元しやすさまで考える必要ってあんの?

270 :名無しさん@お腹いっぱい。:2006/02/19(日) 03:31:45 .net
OS を作るときには、障害が起きた時の復旧のしやすさを考えた方が
いいとは思うよ。
今回みたいなオペミスだけでなく、システム管理用に作ったスクリ
プトのバグとか、ハードウェアの障害とかで同じようなことが起きる
ことはあるから。

対処方法として、パッケージシステムで頑張るか、それとも他に
手段を用意するかは、どちらでもいい話。
実際、上で出ている *BSD での解は、OSの基本部分とそれ以外を
分けて、OSの基本部分についてはパッケージシステムを使わずに
回復できるようにするってやり方なわけだし。

271 :名無しさん@お腹いっぱい。:2006/02/19(日) 03:49:28 .net
/bin に限ってるから調子に乗る馬鹿がでてくる。
/usr/bin とか消した時の議論もしろよ。

272 :名無しさん@お腹いっぱい。:2006/02/19(日) 04:05:27 .net
/usr/bin でも同じじゃね?
*BSD の場合、/usr/bin には OS の基本部分に属するコマンド
しか入らない (パッケージは別の場所にインストールされる)
から、手順は >>249>>251 の延長線上でしょ。

273 :名無しさん@お腹いっぱい。:2006/02/19(日) 18:39:30 .net
/etc を消したのならともかく /bin /sbin /usr/bin /usr/sbinを消しても、CDなりからすぐに簡単に戻せるよなぁ。

>STABLEとかで、自分でmakeしたバイナリだと、それでは戻せないだろ。
たかがSTABLEだったら/usr/srcをチェックアウトしてmakeしなおせばええやん。


274 :名無しさん@お腹いっぱい。:2006/02/20(月) 00:17:21 .net
バックアップネタならバックアップスレでやってよ
スレ (´∀`( ´∀`) チガイ
でも、もまえらなかなか参考になる技をお持ちですな

275 :名無しさん@お腹いっぱい。:2006/02/25(土) 22:53:06 .net
>>273
/bin なしで make ができるのかと小一時間(ry

276 :名無しさん@お腹いっぱい。:2006/02/26(日) 03:32:49 .net
/etc を消したのならともかく /bin /sbin /usr/bin /usr/sbinを消しても、CDなりからすぐに簡単に戻せるよなぁ。

277 :名無しさん@お腹いっぱい。:2006/02/26(日) 03:40:15 .net
パッケージ管理されてるところを中途半端に消されると
確かに復活は面倒だね。
データベースはあるんだから消えてるファイルだけを復活させる仕組みも
作れば作れるんだろうが。

278 :名無しさん@お腹いっぱい。:2006/03/10(金) 00:11:05 .net
ってか素直に cron でテープアーカイブつくっとけよ。
きょーび HDD の値段なんかたかがしれてるだろ

279 :名無しさん@お腹いっぱい。:2006/04/05(水) 16:49:10 .net
FreeBSDなら、/rescueの中に色々入ってるからCDから起動する必要もないね

280 :名無しさん@お腹いっぱい。:2006/04/05(水) 22:06:59 .net
あれっていろいろあるように見えるけど、ddとかで直接ダメージを与えたりすると
まずくね?

281 :名無しさん@お腹いっぱい。:2006/05/07(日) 12:07:05 .net
LFSなら削除したファイルの復旧が簡単そうに思えるけど、どうなんだろ

282 :名無しさん@お腹いっぱい。:2006/09/26(火) 23:08:32 .net
あるディレクトリに -i と -rf ってファイルを置いたけど何も変わらなかったよ

283 :名無しさん@お腹いっぱい。:2007/06/08(金) 01:17:19 .net
保守

284 :名無しさん@お腹いっぱい。:2008/01/15(火) 00:09:05 .net
>>247
昨日
あやまって
rm -rf */tmpと意味不明なことをやってしまい

カレントディレクトリー内のデータがあぼん

285 :名無しさん@お腹いっぱい。:2008/07/25(金) 01:09:58 .net
From: [656] 名無しさん@お腹いっぱい。 <sage>
Date: 2008/07/02(水) 12:54:18

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

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

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

>>1-1000はちょっとそんな感じ?


286 :名無しさん@お腹いっぱい。:2008/10/27(月) 17:59:26 .net
http://www.nicovideo.jp/watch/sm2278996
とりあえず貼っておく

287 :名無しさん@お腹いっぱい。:2010/03/07(日) 09:27:47 .net
先日会社の同僚が rm -rf / やっちまったよ…
おかげでテストが1日遅れ

288 :名無しさん@お腹いっぱい。:2010/07/13(火) 16:15:58 .net
このご時世に、そういうコマンドが残ってるのは
おかしいように思えてきた

289 :名無しさん@お腹いっぱい。:2010/07/13(火) 16:30:19 .net
このご時世にバックアップすらとってないのか?

290 :名無しさん@お腹いっぱい。:2011/07/17(日) 07:20:20.08 .net
       /::.::.::.::.::.:/::.::.::.::.::.::.::ヽ::.::.::.::.:| : : : :
       /::.::.::.::.::.::.:/::.::.::.::.::.: /!::.:: l::.::.::.::.:| : : : :
     ..::.::.::.::.::.::.::.::/:./:.::.::.::/:〈 |::.::.:|::.::.::.::.:| : : : :   
    /::.::.::.::.::./::.::./イ::.::.::.:/:/ Y::.::.|::.::.::.::.:| : : : :
    ::.::.::.::.::./::.::.;'  |::.::.::.,':/l  :.::.::| 、::.::.::.| : : : :
   l::.::l::.::.::.::.::./  |::.::.{/    \| \::.:| : : : :
   |::.::|::.::.::{::./l   人::.::.| u  yぅ笊_.:::| : : : :
   |::.::|::.::.::∨ ィ笊ぅ\|     んxハ 》:j : : : :  ひい〜っ!
   ∨ハ::.::.::.:.. 《 {xぃ}      ヒ辷ツ  | : : : :
      八::.::.::.ハ  ゞー′            | : : : :
        \::.::.| , ,   ′     ' ' '   | : : : :
       |\j      __     し /| : : : :
       |:: 八    /ー─ ヽ     /::.| : : : :
       |::.::.::.\   {_, - 、__ノ    /::.::j : : : :
       |::.::.::.::.::.丶__       イ::.::.:| : : : :
        ::.::.::.::.::.::/ ノ─ァー<   |.::.::.:| : : : :
         ∨::.::./7 / / /_)   /|.::.::.:| : : : :
        ∨:Y/ /  {/ / -r<  |::.::.:;| : : : :

291 :名無しさん@お腹いっぱい。:2011/07/17(日) 10:20:31.60 .net
君だれ子ちゃん?

292 :名無しさん@お腹いっぱい。:2011/08/03(水) 18:01:27.30 .net
cp -rf /

293 :名無しさん@お腹いっぱい。:2011/10/13(木) 23:09:20.45 .net
一生に一度はやりたい rm -rf /

でも今時は仮想マシンとかあるし大した話でもないよな

294 :名無しさん@お腹いっぱい。:2011/10/13(木) 23:13:44.39 .net
そして、仮想マシンに実マシンからNFSマウントしたまま rm -rf / やると。

295 :名無しさん@お腹いっぱい。:2011/11/19(土) 23:54:58.32 .net
すきなだけできるしね

296 :名無しさん@お腹いっぱい。:2011/12/02(金) 14:38:24.22 .net
一般ユーザで rm -f * の方が被害がある

297 :名無しさん@お腹いっぱい。:2011/12/24(土) 18:05:18.32 .net
rm -rf / じゃ面白くないな。

マウントしたまま /をmkfs(newfs)とか、
/のデバイスに/dev/zeroをddとか、
そういう実験報告を頼む!

298 :名無しさん@お腹いっぱい。:2011/12/25(日) 19:30:21.75 .net
自分でやって報告しろよ。

299 :名無しさん@お腹いっぱい。:2012/01/03(火) 06:24:48.49 .net
イライラしたら仮想PCでやってスッキリしてるわ
イメージさえ取っておけばやり放題

300 :名無しさん@お腹いっぱい。:2012/01/03(火) 09:24:41.25 .net
>>299
当然、仮想マシンに実マシンからNFSマウントしたまま rm -rf / やってるんだよな?

301 :名無しさん@お腹いっぱい。:2012/01/03(火) 16:23:52.90 .net
>>300
いやいやいやいや

302 :名無しさん@お腹いっぱい。:2012/02/21(火) 15:22:35.57 .net
やってまたらスッキリした

303 :名無しさん@お腹いっぱい。:2012/08/08(水) 19:21:36.51 .net
現行のOSに付属のrmコマンドで rm -rf / が本当に実行できるのってないでしょ。
実際にはエラーにされるよ。
試したって言ってる人、どうやって実行した?
rm -rf /../ とかにするとエラー回避できるのかな?

304 :名無しさん@お腹いっぱい。:2012/08/09(木) 18:44:11.18 .net
strictにrm -rf /そのままじゃなくて、オプションや環境変数追加していいなら方法あるよ。
GNUのならrm -rf -no-preserve-root /とか。
FreeBSDのならPOSIXLY_CORRECT環境変数をセットするとか。

305 :名無しさん@お腹いっぱい。:2013/01/18(金) 15:47:28.29 .net
rm -rf /*は問題なく実行される

306 :名無しさん@お腹いっぱい。:2013/01/19(土) 20:22:18.24 .net
ホームディレクトリでrm -rf .なら先月やった。

307 :名無しさん@お腹いっぱい。:2013/01/21(月) 22:15:24.56 .net
最近のUNIXでは>>305も使えないよ

308 :名無しさん@お腹いっぱい。:2013/01/26(土) 21:54:28.68 .net
嘘つけアホ

309 :名無しさん@お腹いっぱい。:2013/01/26(土) 22:02:12.78 .net
だから、それは最近のUNIXの機能じゃなくてbashの機能でしょ。

310 :名無しさん@お腹いっぱい。:2013/01/26(土) 22:12:05.94 .net
_人人人人人人人_
> bashの機能 <
 ̄Y^Y^Y^Y^Y^Y ̄

311 :名無しさん@お腹いっぱい。:2013/02/05(火) 17:06:29.08 .net
_人人人人人人人_
> bashの機能 <
 ̄Y^Y^Y^Y^Y^Y ̄

312 :名無しさん@お腹いっぱい。:2013/02/24(日) 21:43:27.60 .net
もう15年以上前の話だが、HP-UXの/tmpをお掃除しようとして、

su
rm -fr ./

で徹夜になった。rootのホームが/だったのをすっかり忘れていたんだな。

313 :名無しさん@お腹いっぱい。:2014/01/06(月) 16:39:15.06 .net
https://www.facebook.com/dnobori/posts/561344127275564

314 :名無しさん@お腹いっぱい。:2014/04/23(水) 21:55:17.15 .net
https://twitter.com/kamiya344/status/458657005738401793

315 :名無しさん@お腹いっぱい。:2014/12/30(火) 18:51:24.24 .net
やってしまった
使い慣れない日本語キーボードでDelete押すつもりでEnter押してしまった
焦ってControl押すつもりでCapsLock押したりして数秒間やってしまった
どうすればいいんだろう
とりあえず/binはなくなった
あと何が消えたか誰か教えて

316 :ペニスン ◆QXDyQcmIfM :2014/12/31(水) 09:34:46.37 .net
>>303
まじで?

cd / &amp;&amp; rm -rf * できえるじゃん

317 :名無しさん@お腹いっぱい。:2016/04/16(土) 11:43:10.27 .net


318 :ウサチャソ:2016/04/16(土) 12:37:06.90 .net
ニュースになるとは

319 :名無しさん@お腹いっぱい。:2016/04/16(土) 14:12:35.37 .net
rootで#rm -rf /*やってもダメージを局所化することはできるよ。

320 :名無しさん@お腹いっぱい。:2016/04/17(日) 14:22:37.03 .net
http://business.newsln.jp/news/201604151116100000.html

321 :名無しさん@お腹いっぱい。:2016/04/18(月) 17:02:12.41 .net
続報
http://japanese.engadget.com/2016/04/15/rm-rf-qanda/

322 :名無しさん@お腹いっぱい。:2016/04/19(火) 01:03:58.08 .net
マ イ ン ド コ ン ト ロ ー ル の手法

・沢山の人が、偏った意見を一貫して支持する
 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法

・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法

偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い

靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト

10人に一人は カ ル ト か 外 国 人

「ガ ス ラ イ テ ィ ン グ」 で 検 索 を !

323 :名無しさん@お腹いっぱい。:2017/12/29(金) 09:16:36.61 .net
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

BM9I8L00YT

324 :名無しさん@お腹いっぱい。:2018/05/22(火) 04:45:59.18 .net
知り合いから教えてもらったパソコン一台でお金持ちになれるやり方
時間がある方はみてもいいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

DPJY0

325 :名無しさん@お腹いっぱい。:2023/03/15(水) 00:01:00.91 .net
あっ!今日何かつけてる?何?消臭力?

326 :名無しさん@お腹いっぱい。:2023/08/06(日) 16:47:21.82 .net
まずい!猟友会の奴らだ!

327 :名無しさん@お腹いっぱい。:2023/08/26(土) 15:11:05.93 .net
ご飯何食べようかな〜。

328 :名無しさん@お腹いっぱい。:2024/03/27(水) 19:57:30.44 .net
一ヶ月も経たたない方がまし

329 :名無しさん@お腹いっぱい。:2024/03/27(水) 19:58:10.45 .net
一人で抱え込まないで
2.3キロはかなりスコアではない

総レス数 329
82 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200